構造函數與析構函數
阿新 • • 發佈:2017-10-11
pac aaa col void con delet names end 析構函數
#include <iostream> using namespace std; class A{ public: A() { cout<<"construct A"<<endl; } virtual void disp() { cout<<"AAAA"<<endl; } ~A() { cout<<"destory A"<<endl; } }; class B:public A {public: B() { cout<<"construct B"<<endl; } virtual void disp(int a) { cout<<"BBBB"<<endl; } ~B() { cout<<"destory B"<<endl; } }; int main() { A *a=new A(); B *b=new B(); delete b; return0; }
析構函數:
- 棧內變量,自動析構 eg. A a; //a自動析構
- 堆內 A *pa = new A(); //要程序員自己析構 ,delete pa;
構造順序:
1. 先構造基類,再構造派生類
析構順序:(與構造相反)
1. 先析構派生類,再析構基類
構造函數與析構函數