基类中派生类的组成

用户4352513

例如。我们有class A及其派生类;class B是否可以实例化Bin类型的指针class A

#ifndef WARRIOR_H
#define WARRIOR_H

#include "CharacterPlayer.h"
class Warrior: public CharacterPlayer
{
public:
    virtual void printCharacterName();
};
#endif

但是,当我尝试实例化Warrior指针或尝试包含“ Warrior.h”时,它给了我很多语法错误。

#ifndef CHARACTERPLAYER_H
    #define CHARACTERPLAYER_H
    #include "Warrior.h"
    class CharacterPlayer
    {
    public:
        Warrior *warriorPntr = nullptr;
        virtual void printCharacterName();

    };
    #endif
谢尔盖·卡里尼琴科(Sergey Kalinichenko)

标头之间具有循环依赖关系:"CharacterPlayer.h"include"Warrior.h""Warrior.h"include "CharacterPlayer.h"这无法编译,因为“前哨”将停止包含。

诀窍是在中向前声明Warrior该类,CharacterPlayer而不是包含标头:

#ifndef CHARACTERPLAYER_H
#define CHARACTERPLAYER_H
class Warrior; // <<== Here
class CharacterPlayer
{
public:
    Warrior *warriorPntr = nullptr;
    virtual void printCharacterName();

};
#endif

这足以声明的指针和引用Warrior,但不足以调用方法或实例化该类。

您最终需要Warrior在cpp文件中包含标头CharacterPlayer.cpp,但这不会导致任何问题,因为标头之间没有循环依赖关系。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

基类中派生类的组成

来自分类Dev

虚拟基类函数中派生类的大小

来自分类Dev

接受Chapel中派生类的类方法

来自分类Dev

C#中派生类的协方差

来自分类Dev

如果基类包含数组成员,则派生类的构造函数不能为constexpr

来自分类Dev

从派生类创建基类对象

来自分类Dev

从基类创建派生类的实例

来自分类Dev

从基类的派生类访问属性

来自分类Dev

静态实例基类/派生类

来自分类Dev

从基类方法克隆派生类

来自分类Dev

非多态派生类的基类

来自分类Dev

从派生类访问基类对象

来自分类Dev

派生类定义的基类集合

来自分类Dev

对派生类对象的基类引用

来自分类Dev

从基类指针访问派生类

来自分类Dev

从基类指针克隆派生类

来自分类Dev

从基类方法克隆派生类

来自分类Dev

静态实例基类/派生类

来自分类Dev

从派生类计算基类参数

来自分类Dev

从基类修改派生类的值

来自分类Dev

父类可以访问C ++中派生类的对象吗?

来自分类Dev

派生类指向基类对象的指针如何调用派生类的方法?

来自分类Dev

为什么派生类指针指向基类可以调用派生类成员函数?

来自分类Dev

从基类和派生类之外的方法返回任何派生类类型

来自分类Dev

派生类指向基类对象的指针如何调用派生类的方法?

来自分类Dev

C ++继承:指向基类的派生类指针调用派生类方法

来自分类Dev

可以在抽象工厂设计模式中派生类具有数据成员

来自分类Dev

在C ++中,如何访问基本函数中派生类的成员?(这甚至是正确的做法吗?)

来自分类Dev

如何使用派生类序列化基类