这个类声明是什么意思?

时间:2014-06-30 19:32:49

标签: c++ class types header-files

在一个标题文件中遇到了一个我不确定如何解释的片段:

...
private:
    class Ellipsoid * ellipse;

后来在cpp中初始化了

ellipse = (Ellipsoid *) something->GetEllipse();

此数据成员上的class关键字让我失望。这是一个指向继承自Ellipsoid的类/类型的指针吗?因此,是"椭圆"被视为对类型的引用?

1 个答案:

答案 0 :(得分:6)

使用的class关键字只是在其使用网站上声明符号Ellipsoidclass

如果编译器已经知道该符号是一个类,那么它是可选的。

class Ellipsoid;

class MyClass
{
    private:
        /*class*/ Ellipsoid * ellipse;
};

但是,如果符号尚未声明,则显示的用法将阻止编译器错误。

//class Ellipsoid;

class MyClass
{
    private:
        class Ellipsoid * ellipse;
};