我在头文件中有一个基类 A 啊
class A{};
在 A.cpp 我有几个子类:
class B: public A{};
class C: public A{};
我想在一个单独的文件中实例化类型 B 和 C,但除非我在其他文件中包含 A.cpp,否则我看不到如何。如果我像这样在 Ah 中转发声明 B 和 C:
class B;
class C;
那么实例化类不知道它是从 A 派生的。我将如何解决这个问题?
谢谢,埃里克
我在头文件中有一个基类 A 啊
class A{};
在 A.cpp 我有几个子类:
class B: public A{};
class C: public A{};
我想在一个单独的文件中实例化类型 B 和 C,但除非我在其他文件中包含 A.cpp,否则我看不到如何。如果我像这样在 Ah 中转发声明 B 和 C:
class B;
class C;
那么实例化类不知道它是从 A 派生的。我将如何解决这个问题?
谢谢,埃里克
您需要A
在头文件中声明例如 Ah 并将该文件包含到 B.cpp 和 C.cpp 中,如果您有一些非inline
函数A
(在声明中定义的函数A
是隐式的inline
)您应该创建 A.cpp,包括 Ah 那里以及在 A.cpp 中定义这些函数
创建文件啊
创建文件 A.cpp 并包含 Ah(如果需要)
创建文件 Bh 和 Ch
两个都包括啊
分别在 Ah,Bh,Ch 中定义 A,B,C 类
分别在A.cpp、B.cpp、C.cpp中写出A、B、C类的成员函数
创建一个主文件并包含 Bh 和 Ch
在主文件中实例化 B 和 C 的对象