构造函数和拷贝函数调用顺序
Class A; Class B; void F() { A a; B b; }//我们定义了a,b两个类,那么a,b构造函数的调用顺序和析构函数的顺序是怎样的呢?
构造顺序是按照语句的顺序进行构造,因此构造函数调用的顺序是先调用a,后调用b。
析构是程序结束时进行的操作,顺序和构造相反,因此为b,a。
整体的顺序是ab构造,然后ba析构。
下面我们单看析构顺序
C c; int main() { A a; B b; static D d; return 0; }//其中A,B,C,D都是类
①除了知道析构函数顺序和构造函数调用顺序相反,
②这里要知道static改变了对象的生存作用域,需要等待程序结束时才会析构释放对象。
③而且c为全局变量,因此先于a,b,d构造,因此,c是最后一个析构。
根据上边三点,析构的顺序是b,a,d,c