A.H
#ifndef A_H
#define A_H
#include "B.h"
class A{
public:
B* b;
A(){
b->ownership = this;
};
};
#endif
B.h
#ifndef B_H
#define B_H
class A;
class B{
public:
A* ownership;
};
#endif //B_H
的main.cpp
#include "A.h"
class C{
A a1;
A a2;
};
int main()
{
C c;
return 0;
}
命令:
g++ -g main.cpp -o main
./main
此程序因分段错误而失败 “gdb main core”告诉我错误在字符串中:“b-> ownership = this;”
问题:我的错在哪里?我应该知道不要犯更多这些错误?谢谢。
答案 0 :(得分:4)
问题在于这个课程:
class A
{
public:
B* b;
A()
{
b->ownership = this;
}
};
您要取消引用b
,但尚未创建B
的实例。