0
#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;」
問題:我的錯在哪裏?我應該知道不要再犯這些錯誤?謝謝。
指針'B *'未在A的構造函數中初始化。它指向未定義的區域。 – kennytm