#include <iostream>
struct D{};
struct B{};
struct C
{
C();
};
struct A
{
A();
B * b;
C * c;
D * d;
static A& pInstance()
{
static A a;
return a;
}
};
A::A()
{
b = new B;
c = new C;
d = new D;
}
C::C()
{
A::pInstance().b;
}
int main()
{
A::pInstance();
std::cin.ignore();
}
上述情況是否存在潛在的問題,因爲C構造函數調用A字段,而A類尚未完全構造。在另一個構造函數中實例化的對象的構造函數中調用函數
我在生產這個代碼。應用程序似乎在開始時隨機崩潰,我想知道這是否可以歸因於這種「差」設計。
如果第一行是'static A&A :: pInstance()',或者2個調用有額外的'A ::'? – kkm
當你輸入構造函數時,這個類已經完全構造了。 –
這樣的問題需要一個完整的例子來正確回答。請包括所需的聲明/定義。 –