我试图将类声明为以下内容:
class MyClass: MyBase;
但我不能因为编译器咒骂。
error: expected ‘{’ before ‘;’ token
我试图找到一个类名声明来澄清这个方面。但我不能。我正在c ++工作草案的第7条(声明)中寻找这个。
答案 0 :(得分:2)
如果您只想声明 MyClass
课程,那么
class MyClass;
就够了。它告诉编译器类MyClass
存在,您现在可以声明指向MyClass
的指针或引用。
如果你想定义类,那么你需要完全定义。
答案 1 :(得分:1)
以这种方式给出定义:
类MyClass:MyBase
{
//////
};
如果您只想声明,那么就这样做:
类MyClass;
答案 2 :(得分:1)
关于标准(n3797):
9.1班级名称:
类声明引入了类名...声明 仅由类密钥标识符组成;是要么重新声明 当前范围中的名称或者前向声明 标识为类名。它将类名引入 目前的范围。
10个派生类:
基类列表可以在类定义中指定...
所以,你可以告诉编译器:“哦,我稍后会定义这个类”。如果你需要知道类的“结构”,那么你需要定义它。