1.构造函数
在类被实例化时调用
2.析构函数
在实例化的对象生命周期结束的时候调用
代码说明
#include<iostream>
using namespace std;
class A{
public:
A()
{
cout << "类A的构造函数被调用" << endl;;
}
~A()
{
cout << "类A的析构函数被调用" << endl;
}
private:
int a;
};
class B :A{
public:
B()
{
cout << "类B的构造函数被调用" << endl;
}
~B()
{
cout << "类B的析构函数被调用" << endl;
}
};
void funA()
{
A *a = new A(); //申请一个内存放的是A类型的指针变量
cout << "haha" << endl;
delete a; //这个时候调用析构函数
}
void funB()
{
B *b = new B();
delete b;
}
int main()
{
//A a;
//funA();
funB();
system("pause");
return 0;
}
输出是:
说明:
实例化派生类时,先调用基类的构造函数,然后是派生类的构造函数;
回收派生类对象时,先调用派生类自己的析构函数,然后是基类的析构函数。