在.h文件中包含多个类
Including multiple classes within a .h file
假设我有4个类A, B, C和D,并且我想在一个实现来自另一个.h文件User的纯虚函数的类中使用这4个类。我的问题是如何将这4个类包含到一个。h中,以便该。h的。cpp将允许我在类中调用这些函数。
这是我到目前为止所尝试的:
#include "User.h"
#include "A.h"
#include "B.h"
#include "C.h"
#include "D.h"
Class create : public User, public A, public B, public C, public D
{
public:
create();
virtual ~create();
bool a1();
bool b1();
bool c1();
bool d1();
int a2();
int b2();
int c2();
int d2();
};
然后当我尝试在create.cpp中调用这些函数(在a.p p, b.p p, c.p p, d.p p中声明)时,我被告知"对A::a1()的未定义引用…等等。
这有意义吗?
undefined reference to ...
错误不是编译错误。这是一个链接错误。
A::a1()
必须存在,同意它的声明(名称和参数),并且不会抱怨它的使用。然而,类似器找不到它的定义(基本上,它的编译实现)。对于如何正确编译和链接代码的解释,您提供的细节太少了,但是这个过程应该包括每个.cpp文件的编译,这些文件包含了您的类的实现。关于链接的一些细节可以在以下问题中找到:
c++链接object's文件(c++)
在g++中链接文件
你可能需要这样做:
g++ source_code.cpp A.cpp B.cpp C.cpp D.cpp
之类的。如果需要链接目标代码,一旦将每个单独的.cpp
文件编译成.o
文件,将.cpp
扩展名替换为.o
。
相关文章:
- 即使我没有包含多个文件,C++中的多个定义错误
- C++文件包含多行
- 项目中包含多个相同的头文件:C与C++
- C++多次包含头文件
- 如何从包含多个句子的输入文件中表达单个单词.C
- 如何将包含多个.cpp源文件的文件夹导入Eclipse项目中,每个源文件都有一个main()定义
- 读取包含多行的文本文件
- 包含类文件后的错误消息(多个定义的符号)
- 为什么一个成员函数只存在一次,甚至在一个包含多个的.h文件中定义?
- 包含多个 .h 和 .cu 文件的静态库无法解析函数
- 如何将XML文件拆分为多个XML,以便每个新文件只包含原始文件中的一个文本节点
- 包含多个源文件中包含的"const"的头文件
- 如何读取包含多个根元素的JSON文件
- 如何反序列化包含多个记录的文件
- 使用循环从包含多行的文本文件中读入数据
- 8 位(每个样本位数)PCM WAV 文件可以包含多个通道吗?
- C++:如果我包含多个头文件,如果两个都有 #include,是否会导致任何问题<string>?
- 分析包含多行条目的日志文件
- C++ Linux 上包含多个 *.cpp 文件的生成文件
- 多次包含 CPP 文件