#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <vector>
#include <thread>
using namespace std;
class A {
public:
A() {
std::cout << "A - construct" << std::endl;
}
~A() {
std::cout << "A - desconstruct" << std::endl;
}
};
class B {
public:
B() {
std::cout << "B - construct" << std::endl;
}
~B() {
std::cout << "B - desconstruct" << std::endl;
}
};
class C {
public:
C() {
std::cout << "C - construct" << std::endl;
}
~C() {
std::cout << "C - desconstruct" << std::endl;
}
};
class Base {
public:
Base() {
std::cout << "Base - construct" << std::endl;
}
~Base() {
std::cout << "Base - desconstruct" << std::endl;
}
void print() {
std::cout << "Base - print" << std::endl;
}
private:
A a;
B b;
C c;
};
int main() {
Base b;
return 0;
}
执行结果:
在类Base中顺序定义了3个成员分别是A,B,C。
构造函数执行的顺序是: A --> B ---> C --> Base
析构函数执行的顺序是:Base ---> C --> B --> A