我有一個C++類層次結構,看起來是這樣的:析構函數爲了
class A;
class B
{
public:
B(A& a) : a_(a)
{
};
private:
A& a_;
};
class MyObject
{
public:
MyObject() : b_(a_)
{
};
private:
A a_;
B b_;
};
有時,它會發生在B的析構函數,我會得到有關其A的參考無效訪問異常則顯得在B之前銷燬。
使用類成員初始化其他成員是否有內在錯誤?是否不能保證銷燬的順序?
感謝, PaulH
這是整個代碼,給你毀壞後的段錯誤嗎?你能告訴我們main()嗎? – rui 2009-12-18 16:28:44
問題是編譯器生成的複製構造函數。詳情請參閱下面的答案。 – 2009-12-18 19:04:50