超级阶级不能有派生类的指针

Superclass cannot has a pointer of derived class?

本文关键字:指针 派生 不能      更新时间:2023-10-16

我正在在Visual Studio 2015社区版本中进行我的项目。

我想创建两个类。

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

这是可能的吗?

我继续接收错误代码C2504。但是我无法将此错误消息转换为英语。

很抱歉我不显示此错误消息。


两个类是分开的,每个类别.h文件包括其他.h文件例如,在a.h中包括" b.h",反之亦然。


对不起,我忘了添加分号。

只需写

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...
};

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