我有几个类,其中一个是 MainClass 类。
class MainClass {
public:
MainClass() {
}
void start() {
foo1.start();
foo2.start();
}
private:
First foo1; //I would like have here reference to First
Second foo2; // and Second class
};
这是我的 First 类。 Second 类与 First 相同。
class First {
public:
First() {
}
void start() {
std::thread(&First::receive, this);
}
void receive() {
//...
}
};
在主要功能中我有这个:
int main(){
MainClass object;
object.start();
}
我希望在 MainClass 对象运行时,从 First 和 Second 类运行 start()方法创建并在此对象上调用 start()方法。
我收到错误:
error: field ‘foo1’ has incomplete type
error: field ‘foo2’ has incomplete type
但如果我指向第一和第二:
...
First *foo1;
Second *foo2;
...
程序在我在控制台中运行程序时成功编译我得到"分段错误"。