构造和析构顺序

learnAcc / 2024-10-10 / 原文

C c;
int main()
{
	A a;
	B b;
	static D d;
	return 0;
}

析构顺序:局部对象先析构,全局对象和静态对象再析构。
~B ~A ~D ~C
构造顺序:全局对象先构造,局部对象再构造,静态局部对象在走到声明语句时再构造。
C A B D

特殊点就在于局部静态对象,构造顺序就像局部对象一样构造,但由于静态对象生命周期是整个程序所以在最后再析构。