静态成员变量的初始化及析构顺序
一个项目中不同文件中的静态成员变量是按什么顺序构造和析构的呢?
// A.cpp
A * A::instance;
AutoPtr<A> A::ptr(A::instance); //............1
A::A()
{
}
A::~A()
{
}
// B.cpp
B * B::instance;
AutoPtr<B> B::ptr(A::instance); //............2
B::B()
{
}
B::~B()
{
}
上例中1和2哪个先被构造呢?是否和文件包含有关?