我正在写一个C ++ Tic Tac Toe游戏,这是我到目前为止的东西:

#include <iostream>
using namespace std;

int main()
{
    board *b;
    b->draw();
    return 0;
}
class board
{
    void draw()
    {
        for(int i = 0; i < 3;++i){
            cout<<"[ ][ ][ ]"<<endl;
        }
    }

};

但是,当我创建指向board的指针时,CodeBlocks给了我一个错误:在此范围内未声明“ board”。 我该如何解决? 我是一名新的C ++程序员。

===============>>#1 票数:4 已采纳

您至少存在以下问题:

  • 在尝试访问堆对象之前,不要初始化它。 在这种简单的情况下,我建议使用堆栈对象而不是堆。

  • 在堆上实例化板类型之前,您没有已知的板类型。 只需将板类声明移到主要功能之前或向前声明它即可。 在这种简单的情况下,我将遵循“正确的排序”。

  • draw方法是私有的,因为这是类中的默认“可见性”。 您需要将其标记为公开。 另外,您可以切换到struct而不是class,以使board方法可用,因为默认的“可见性”在结构中是公共的。

这应该修复您的代码:

#include <iostream>
using namespace std;

class board
{
public:
    void draw()
    {
        for(int i = 0; i < 3;++i){
            cout<<"[ ][ ][ ]"<<endl;
        }
    }

};

int main()
{
    board b;
    b.draw();
    return 0;
}

===============>>#2 票数:0

您应该在main之前声明板级,因为在对象创建时不知道板级。 在那之后代码也会崩溃,因为board * b只会使指针指向董事会对象,因此需要将代码更改为-

  #include <iostream>
  using namespace std;

class board
{  
 public :
 void draw()
  {
        for(int i = 0; i < 3;++i)
            cout<<"[ ][ ][ ]"<<endl;
  }
};
int main()
{
    board *b = new board();
    b->draw();
    if(b)
      delete b;
    b=0;
    return 0;
}

  ask by Edward Karak translate from so

未解决问题?本站智能推荐:

1回复

未在C ++中声明类错误消息

因此,已将此代码提供给我运行,并且每当我尝试运行它时,我都会收到相同的错误消息。 “尚未宣布英语课”。 我是C ++的新手,所以对您有所帮助。 当前,我正在使用程序CodeBlocks运行我的代码。 收到错误消息后,我将其复制并粘贴到我的DevC ++编辑器中,并遇到了同样的问题。
2回复

代码块:未在此范围内声明“类”

因此,我正在尝试编译一个非常简单的项目。 由于某些原因,它在.cpp文件中找不到我的班级。 这是代码:main.cpp: Dog.h: Dog.cpp: 所以这很基本,但仍然出现错误:在此范围内未声明“ Dog”。 我相信我需要将此添加到构建中,但是我已经通
2回复

为什么会出现“未在此范围内声明”错误?

在以下代码段中我收到5个错误 错误中的4个是 '('令牌|之前的预期unqualified-id 和1个错误 未在此范围内声明“ GetEntityIterator” | GetEntityIterator()返回vector<*Entity>
1回复

'sqlite3_api'未在此范围内声明

我第一次用C ++学习sqlite3编程,这个错误使我和我的网络搜索能力混乱。 这是我的代码,只要它在抛出错误之前得到。 我很确定它与已经(或没有)链接的库有关,但我无法弄清楚如何使其正常运行。 我使用code :: blocks在Ubuntu上。 谢谢!!
3回复

错误:未在此范围内声明“朋友成员函数名称”

我正在将所有C ++ Windows应用程序移动到Ubuntu Linux。 此应用程序在Windows 7操作系统上的Visual Studio 2015社区中运行良好。 但是,在Ubuntu Linux上的代码块中运行时会出错。 我已经使用以下简单的Person类复制了我得到的错误消息
1回复

已安装Ftdilib,但ftdi_enable_bitbang“未在此范围内声明”

我安装了ftdilib,然后尝试编译以下代码: 但是有错误:在此范围内未声明ftdi_enable_bitbang。这是唯一的错误。 为什么会不断弹出?
3回复

< 未在此范围内为私有静态方法声明>

我看到了先前称为“在此范围内未声明'方法名称'”的线程,但是答案并没有真正帮助我。 发生这种情况的方法是私有静态方法。 我正在尝试在课堂上使用它,但是它不起作用。 该方法的名称是“ nthCoeffCatalan”。 每次使用时都会出现错误。 我不知道这是否有帮助,但是我正在将Code
2回复

错误:我的每个函数和变量均未在此范围内声明(代码;;块,C ++)[关闭]

我是c ++的新手,我写了我的第一个“真实”程序(一个简单的四运算计算器)。 当我编译它时,我遇到了12个编译器错误。 我能够解决一些问题(缺少分号等),但其中有7个拒绝离开。 错误和我的代码在这里: 错误: Main.cpp 标头 Functions.cpp
2回复

未在此范围内声明“显示”

即使在声明和定义后,在程序下进行编译时,我仍收到错误消息“显示未在此范围内声明”。 不知道我在哪里错。 请提出建议。 谢谢 〜
3回复

错误:在此范围内未声明“对象”

有人可以告诉我为什么会出现此错误吗? 错误:在此范围内未声明firstpokemon。 还有另一种书写方式吗? 错误发生在cout << firstpokemon.getatk();