/*
#include<iostream>
using namespace std;
class father
{
private:
int a;
public:
father(int i){a=i;cout<<"构造基类a的值:"<<a<<endl;}
~father(){cout<<"析构基类a的值:"<<a<<endl;}
};
class son:public father
{
private:
int b;
public:
son(int i,int j);
~son(){cout<<"析构子类b的值:"<<b<<endl;}
};
son::son(int i,int j):father(i)
{
b=j;
cout<<"构造子类b的值:"<<b<<endl;
}
void main()
{
son b(1,2);
}
#include<iostream>
using namespace std;
class father
{
private:
int a;
public:
father(int i){a=i;cout<<"构造基类a的值:"<<a<<endl;}
~father(){cout<<"析构基类a的值:"<<a<<endl;}
};
class son:public father
{
private:
int b;
public:
son(int i,int j);
~son(){cout<<"析构子类b的值:"<<b<<endl;}
};
son::son(int i,int j):father(i)
{
b=j;
cout<<"构造子类b的值:"<<b<<endl;
}
void main()
{
son b(1,2);
}
*/
顺序:
1.构造父类对象
2.构造子类对象
3.析构子类对象
4.析构父类对象
因为:
构造过程:有父亲才有有儿子
析构过程:拆迁,先拆顶楼,后拆底层
本文通过一个 C++ 示例详细介绍了类继承中构造函数与析构函数的调用顺序。构造过程遵循先父类后子类的原则,而析构则相反,先子类后父类。这一顺序对于理解对象生命周期至关重要。

被折叠的 条评论
为什么被折叠?



