#include <iostream>
using namespace std;
class Base
{
public:
Base()
{
b1 = b2 = 0;
}
Base(int i, int j);
~Base();
void Print()
{
cout << b1 << ", " << b2 << ", ";
}
private:
int b1,b2;
};
Base::Base(int i, int j)
{
b1 = i;
b2 = j;
cout << "Base的构造函数被调用:" << b1 << ", " << b2 << endl;
}
Base::~Base()
{
cout << "~Base的构造函数被调用:" << b1 << ", " << b2 << endl;
}
class Derived : public Base
{
public:
Derived()
{
d = 0;
}
Derived(int i, int j, int k);
~Derived();
void Print();
private:
int d;
};
// 派生类的析构函数对派生类新增普通成员进行清理,再调用成员对象析构函数,最后调用基类析构函数,
// 派生类的构造函数与析构函数的顺序正好相反,
Derived::Derived(int i, int j, int k):Base(i,j),d(k)
{
cout << "Derived的构造函数被调用:" << d << endl;
}
Derived::~Derived()
{
cout << "Derived的析构函数被调用:" << d << endl;
}
void Derived::Print()
{
Base::Print();
cout << d << endl;
}
int main()
{
Derived obj1(1,2,3);
Derived obj2(-1,-2,-3);
obj1.Print();
obj2.Print();
return 0;
}
派生类的析构函数
最新推荐文章于 2018-01-22 10:29:12 发布