The execution order of the C ++ constructor and destructor

 

 

 

#include <iostream>
#include <cstring>
#include <vector>
#include <list>
#include <string>
#include <array>
using namespace std;

class B {
public:
    B(void)
    {
        cout << "B\t";
    }
    ~B(void)
    {
        cout << "~B\t";
    }
};
struct C {
    C(void)
    {
        cout << "C\t";
    }
    ~C(void)
    {
        cout << "~C\t";
    }
};
struct D : B {
    D(){ cout << "D\t"; }
    ~D(){ cout << "~D\t"; }
private: C c;
};

int main()
{
    D d;
    return 0;
}

 

 

Guess you like

Origin www.cnblogs.com/maider/p/11248309.html