在一个标题文件中遇到了一个我不确定如何解释的片段:
...
private:
class Ellipsoid * ellipse;
后来在cpp中初始化了
ellipse = (Ellipsoid *) something->GetEllipse();
此数据成员上的class关键字让我失望。这是一个指向继承自Ellipsoid的类/类型的指针吗?因此,是"椭圆"被视为对类型的引用?
答案 0 :(得分:6)
使用的class
关键字只是在其使用网站上声明符号Ellipsoid
为class
。
如果编译器已经知道该符号是一个类,那么它是可选的。
class Ellipsoid;
class MyClass
{
private:
/*class*/ Ellipsoid * ellipse;
};
但是,如果符号尚未声明,则显示的用法将阻止编译器错误。
//class Ellipsoid;
class MyClass
{
private:
class Ellipsoid * ellipse;
};