类对象的数组元素设置不正确,set()和get()成员函数可能会导致

科琳娜

这是我第一次使用C ++处理类,而且我似乎被很多绊倒了。我的程序应该是对使用struct的先前程序的重写(请参见此处:for循环中的随机数生成器每次都会给出相同的数字),但改用了一个类。

#include <iostream>
#include <string>
#include <cstdlib>
#include <ctime>
using namespace std;

const int WHEEL_POSITIONS = 30;
const char wheelSymbols[WHEEL_POSITIONS + 1] = "-X-X-X-X-X=X=X=X*X*X*X*X@X@X7X";

class slotMachine
{
    private:
        int spinPos;
        char spinSymbol;
    public:
        slotMachine(); // Constructor
        char symbols[WHEEL_POSITIONS + 1]; // Should be private?
        void setSpinSymbol(); // Spins the wheels
        char getSpinSymbol() const // Returns the symbol
            { return spinSymbol; }
} wheels[3];

// Constructor initializes slot wheels to contents of wheelSymbols
slotMachine::slotMachine()
{
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < (WHEEL_POSITIONS + 1); j++)
        {
            wheels[i].symbols[j] = wheelSymbols[j];
        }
    }
}

void slotMachine::setSpinSymbol()
{
    for (int i = 0; i < 3; i++)
    {
        wheels[i].spinPos = (rand() % WHEEL_POSITIONS);
        wheels[i].spinSymbol = wheels[i].symbols[(wheels[i].spinPos)];
    }
}

void displayResults(slotMachine fwheels[3])
{
    for (int i = 0; i < 3; i++)
    {
        cout << fwheels[i].getSpinSymbol();
    }
}

void displayResults(slotMachine []);
//bool getWinner(slotMachine []);

int main(void)
{
    slotMachine wheels[3];
    time_t seed;
    time(&seed);
    srand(seed);

    displayResults(wheels);

    return 0;
}

该代码可以编译,但是输出以下内容:

在此处输入图片说明

我有一种感觉这个错误是通过具有在我的构造走了不对劲的东西造成的slotMachine,我的getSpinSymbol()功能,或者我的setSpinSymbol()功能,但我已经看了过来几次,似乎无法弄清楚。我已经阅读了几篇有关C ++类的在线材料,但是对于这个概念,我还是很新奇,也很不稳定-如果我忽略了很小或很明显的东西,我深表歉意。

拉基卜

您的代码有几个问题:

   1.Class names should be started with upper case letter. slotMachine -> SlotMachine 
   2.Remove wheels[3] after class definition.You are using the array declared in main() method.     
   3.Why you are declaring displayResults(..) again after it's definition?
   4.You are not calling setSpinSymbol() before displayResults(..).

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在调度之间检测到状态突变,在路径 `...` 中。这可能会导致不正确的行为

重新加载UITableView会导致标签设置不正确

输出流中先前电流的非单调DTS更改为这可能会导致输出文件中的时间戳不正确

大小不正确的GUI。Qt Designer中可能会滥用布局

Unity构造函数对象设置不正确

数组错误的元素的除法和不正确的总和

不正确的成员构造函数定义

Java:创建静态类成员,其构造函数可能会引发异常

JSON 对象不正确并导致 HttpException

CollapsingToolbarLayout-设置expandedTitleTextAppearance和collapsesTitleTextAppearance可能会导致问题

在python中,实现其构造函数可能会失败的类的正确方法是什么?

是什么会导致isset()和in_array()均不正确地求值?

数组大小设置不正确

为什么添加日期对象和时间对象会返回不正确的值?

由于以下SET选项的设置不正确,因此由于INSERT导致获取错误失败

删除单个构造会导致执行不正确

发行文件可能不正确,导致apt-get更新失败

从函数返回的 char* 数组打印不正确的值(可能是内存管理)

这是范围问题,还是我不正确地设置了对象数组?

使用__m256值数组的这种不正确代码生成是否会导致clang错误?

Spark SQL窗口函数导致数据分布不正确

修改析构函数中的类成员对象是否会导致未定义的行为?

显示不正确(可能会有负边距)?

为什么这种不正确的编译和链接会导致我的C源文件被删除?

库的析构函数中的“释放对象的校验和不正确”

自由释放对象的校验和不正确 - C 中的二维双数组

为什么将std :: move(object)和该对象的成员传递给函数会导致SIGSEGV

bcp in失败,并显示“由于以下SET选项设置不正确,导致插入失败:'QUOTED_IDENTIFIER'”

matplotlib:boxplot对象中的文件设置不正确