1. 程式人生 > >構造函數與析構函數

構造函數與析構函數

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; return
0; }

析構函數:

  1. 棧內變量,自動析構 eg. A a; //a自動析構
  2. 堆內 A *pa = new A(); //要程序員自己析構 ,delete pa;

構造順序:

  1. 先構造基類,再構造派生類

析構順序:(與構造相反)

  1. 先析構派生類,再析構基類

構造函數與析構函數