C ++:非静态成员引用必须与特定对象相关

时间:2017-10-14 02:04:34

标签: c++ arrays error-handling compiler-errors member

我已经看到了很多帖子,但是当定义了spme类方法时,它们似乎都在解决。

应用程序的背景:只是尝试制作一个基本的数独游戏,以获得C ++的支持。

错误似乎与主函数.cpp文件无关,所以我会忽略它,除非要求保持说明简短。

board.h文件:

#pragma once
class board
{
public:
    board(int gameSize, int diffifuclty) : gameSize(gameSize), difficulty(difficulty) {};
    ~board();

private:
    int gameSize; int difficulty;
    int game[gameSize][gameSize][gameSize][gameSize];
    void createRandom(); // Creates a random workable board.
    void hasSolution(); // Checks if there's a solution from the current state.

};

我还没有玩过board.cpp文件,因为我正忙于在board.h文件中定义所有内容以计划我想写的函数。

无论如何,我希望在控制台中输入一个gameSizedifficulty的游戏板。当我尝试为游戏板构建多维数组时,我收到了标题中提到的错误。 (所以对于数独游戏,9x9游戏的游戏尺寸为3。)

我不确定错误是什么或如何使这个数组成为一个属性(我不确定这是否是C ++术语,很抱歉)?

1 个答案:

答案 0 :(得分:0)

您遇到的问题是C ++的典型OOP问题。您可以找到更多解释here

这是因为在引用该类的任何成员之前,您没有先创建对象。

例如,

construct(game); // game is a member of class board. you need to create an object of board first.

这是正确的

board bd;
construct(bd.game);