超类不能有派生类的指针?

时间:2016-06-16 14:58:43

标签: c++ inheritance constructor

我正在使用visual studio 2015社区版进行我的项目。

我想创建两个类。

class A {
    B* b;
    public:
    //several method... 
};
class B : public A {
    public
    //several method...
};

这可能吗?

我一直收到错误代码C2504。 但是我无法将此错误消息翻译成英文。

对不起,我没有显示此错误消息。

两个类是分开的,每个类.h文件包含其他.h文件 例如,包括" B.h"在A.h,反之亦然。

抱歉,我忘了添加分号。

1 个答案:

答案 0 :(得分:1)

只需写下

class A {
    class B* b;
    ^^^^^
    public:
    //several method... 
};
 ^^
class B : public A {
    public
    //several method...
};
 ^^

或者

class B;
^^^^^^^^
class A {
    B* b;
    public:
    //several method... 
};
class B : public A {
    public
    //several method...
};

您不应在其他标头中包含每个标头。否则,将定义两次类。