我在头文件 A.h 中有一个基类 A
class A{};
在 A.cpp 中我有几个子类:
class B: public A{};
class C: public A{};
我想在单独的文件中实例化类型 B 和 C,但除非我在我的其他文件中包含 A.cpp,否则我看不到如何实现。如果我像这样在 A.h 中转发声明 B 和 C:
class B;
class C;
那么实例化类不知道它派生自A。我该如何解决这个问题?
谢谢, 埃里克
最佳答案
您需要在头文件中声明 A
,例如 A.h 并将该文件包含到 B.cpp 和 C.cpp 中,如果您在中有一些非 inline
函数A
(在 A
声明中定义的函数是隐式内联
)你应该创建 A.cpp,在那里也包含 A.h 并在中定义这些函数A.cpp
关于c++ - 转发声明一个子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16282865/