#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
当你输入构造函数时,这个类已经完全构造了。 –
这样的问题需要一个完整的例子来正确回答。请包括所需的声明/定义。 –