向前声明一个子类
Forward Declare a Subclass
我有一个基类a在头文件A.h
class A{};
在a.p我有几个子类:
class B: public A{};
class C: public A{};
我想实例化类型B和C在一个单独的文件,但我不能看到如何,除非我包括a.p在我的其他文件。如果我像这样在A.h中声明B和C:
class B;
class C;
那么实例化类不知道它从a派生,我该如何解决这个问题?
谢谢,Eric
您需要在头文件中声明A
,例如A.h,并将该文件包含到b.c p和c.c p中,此外,如果您在A
中有一些非inline
函数(在A
声明中定义的函数隐式inline
),您应该创建a.p p,也包括A.h并在a.p中定义这些函数
创建文件A.h
创建文件a.p p并包含A.h(如果需要)
创建文件B.h和C.h
包含A.h
分别在A.h,B.h,C.h 中定义类A,B,C
分别在a.p、b.p和c.p 中编写类A、B和C的成员函数
创建一个主文件并包含B.h和C.h
在主文件中实例化B和C的对象
相关文章:
- 将父类的子类的数据复制到具有相同父类的另一个类
- C++有没有办法强制重写一组方法,如果其中一个方法在子类中具有重写?
- 创建子类的多个实例,其中只有一个超类实例
- 创建一个函数,该函数使用模板创建类或子类的对象
- 我想要一个具有子函数的函数访问相同的命名函数,而不使用它取决于其子类的类
- 我们可以在没有新实例化的情况下声明一个抽象方法来返回抽象超类中的子类对象吗
- 是否可以使一个类成为两个不同层次结构的子类?
- 如何将抽象类的可访问性限制为另一个抽象类及其子类?
- 是否可以为所有子类设置一个实例?
- 模板子类的一个示例
- 我们如何有证据表明,声明虚拟函数的类是2个字节,其中一个不超过一个未声明,而在子类中
- QT子类UI表单显示一个空白窗口
- C++:从两个包含子类 (typedef) 的列表创建一个列表
- 我有一个为 cpp 中的某个类定义的模板函数 - 不是 hpp.可以由子类使用吗?
- 如何创建一个包含C 中的子类的类的链接列表
- 如何处理一个子类有方法,而另一个没有方法的子类?
- 如何从另一个类访问一个类的方法/变量,而不在c++中实例化它或子类
- 将QQuickItem指针的子类指定给另一个C++对象
- C++在子类中创建一个可用的方法
- 为什么Qt提供了一个类来对其进行子类化