为什么这种前向声明方法会产生错误?

时间:2015-03-01 03:16:20

标签: c++ class

// practice.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

using namespace std;

class one;
int main()
{
    one alpha;
    cin.get();
}

class one
{

};

我不知道为什么上面的方法产生错误:object使用未定义的类。任何帮助都会很好。

3 个答案:

答案 0 :(得分:3)

前向声明允许您创建指针或类的引用。但是,为了使用该类(包括创建它的实例),编译器在此时需要完整的类定义。

答案 1 :(得分:0)

您需要在使用之前定义类。前向声明仅适用于指针,但这不是您使用的方式。

答案 2 :(得分:0)

编译器需要在定义对象之前知道类的完整定义,如果要最近定义类,可以先定义指针或引用,然后在定义类之后初始化它