【发布时间】:2019-10-22 16:01:46
【问题描述】:
我试图在一个单独的文件中定义一个类的成员结构。但是,我不确定实现它的正确方法是什么。
以下是我尝试过的。在 code1.cpp 是主要的源代码。我想将成员结构 Mid 的定义放到一个单独的文件 code2.cpp 中。但是,为了让 code2.cpp 知道该结构是 TestCls 的一部分,我在那里导入 code1.cpp 并添加了警卫。我知道这行不通,但我不知道如何使它工作。谢谢
code1.cpp:
#include <iostream>
#include "code2.cpp"
class TestCls {
public:
struct Mid;
};
int main() {
TestCls::Mid mid1;
std::cout << mid1.a << std::endl;
}
code2.cpp
#ifndef XXX
#define XXX
#include <iostream>
#include <sys/dtrace.h>
#include "code1.cpp"
struct TestCls::Mid {
int a = 0;
};
#endif //XXX
【问题讨论】:
-
无关的,一般来说你不应该包含 cpp 文件,只包含标题。你也有一个循环包含,因为只有文件有一个包含保护。
-
您需要将声明放在 .h 中。