问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

分析构造函数和析构函数调用次序

发布网友 发布时间:2022-05-25 14:53

我来回答

2个回答

热心网友 时间:2023-11-06 00:08

好无聊的问题,自己随便写点测试代码也有结果了。
原则并不复杂,构造类时,先按继承的顺序构造各父类,完成后,再按成员定义的顺序构造各成员。析构是反序。

热心网友 时间:2023-11-06 00:09

(1)
#include <iostream>
using namespace std;
class A
{
public:
A()
{
cout <<"constructing A"<<endl;
}
~A()
{
cout <<"Destructing A"<<endl;
}
};
class C
{
public:
C()
{
cout <<"constructing C"<<endl;
}
~C()
{
cout <<"Destructing C"<<endl;
}
};
class B:public A
{
public:
C c;
B()
{
cout <<"constructing B"<<endl;
}
~B()
{
cout <<"Destructing B"<<endl;
}
};
class D: public B
{
public:
D(){
cout <<"constructing D"<<endl;
}
~D(){
cout <<"Destructing D"<<endl;
}
};
int main()
{
D d;
return 0;
}
输出:
constructing A
constructing C
constructing B
constructing D
Destructing D
Destructing B
Destructing C
Destructing A
(2)
#include <iostream>
using namespace std;
class A
{
public:
A()
{
cout <<"constructing A"<<endl;
}
~A()
{
cout <<"Destructing A"<<endl;
}
};
class C:public A
{
public:
C()
{
cout <<"constructing C"<<endl;
}
~C()
{
cout <<"Destructing C"<<endl;
}
};
class B:public A
{
public:
C c;
B()
{
cout <<"constructing B"<<endl;
}
~B()
{
cout <<"Destructing B"<<endl;
}
};
class D: public B
{
public:
D(){
cout <<"constructing D"<<endl;
}
~D(){
cout <<"Destructing D"<<endl;
}
};
输出:
constructing A
constructing A
constructing C
constructing B
constructing D
Destructing D
Destructing B
Destructing C
Destructing A
Destructing A
(3)
#include <iostream>
using namespace std;
class A
{
public:
A()
{
cout <<"constructing A"<<endl;
}
~A()
{
cout <<"Destructing A"<<endl;
}
};
class C:virtual public A
{
public:
C()
{
cout <<"constructing C"<<endl;
}
~C()
{
cout <<"Destructing C"<<endl;
}
};
class B:virtual public A
{
public:
C c;
B()
{
cout <<"constructing B"<<endl;
}
~B()
{
cout <<"Destructing B"<<endl;
}
};
class D: public B
{
public:
D(){
cout <<"constructing D"<<endl;
}
~D(){
cout <<"Destructing D"<<endl;
}
};
输出:
constructing A
constructing A
constructing C
constructing B
constructing D
Destructing D
Destructing B
Destructing C
Destructing A
Destructing A
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 如何避免wps卡顿? 属鼠的男人找对象是属什么,属鼠的人和什么属相合 96年鼠的姻缘在哪年 属相相合年份运势提升 2024属鼠找对象属什么最佳 黑客攻击网站能报案吗 黑客攻击报案有用吗 复杂函数的构造和析构 分析函数的复合结构y=(2x+1)的一百次方 怎么知道是翡翠还是玉 骆驼祥子的人生经历是怎样的,你认为他的悲惨遭遇是由什么造成的? 《骆驼祥子》 1:祥子经历了人生哪三起三落? 骆驼祥子的经历是什么?为什么他失去了谋生的依靠以及虎妞呢?这说明了什么?明白后,如何消灭延续至今的 梦见回自己住处,必须通过独木桥,桥就在水上,走到半路摔倒了,爬起来继续走,最后顺利 梦见老公到处找住处 梦见自己在找住的地方,又碰到老公在找住处 梦见找住处,却到处都是屎,无法可住 瑜伽和普拉提的介绍 普拉提是什么运动?怎么做? 池塘养殖鱼苗水花,怎样防治蜻蜓幼虫 因为我要放水花鱼苗不杀死它们能行吗? 买面条机是买不锈钢的还是塑料的 家用小型手摇压面机在哪里能买到?(既能压饺子皮又能压面条) 家用手动 面条机 压面机 什么牌子的话 想买个给奶奶用 面条机搅拌器塑料好还是不绣钢好 用压面条机器怎么做馄钝皮?和面时需要注意什么问题?例如水和面粉的比例,越详细越好。还有,做馄顿皮... 压面机器的手擀面刀是什么型状 数学分析,构造函数 什么是构造函数,什么是析构函数? 试分析结构描述中,指针函数的说明与运用特点。 c++中的析构函数和构造函数搞不懂,谁能生动的解释一下,最好给一个典型而又简单的例子。拜托了!!! C++析构函数的作用? 不小心把蟑螂带回家怎么办 家里发现蟑螂怎么办?? photo shop抠图出来的人物怎么缩小?? ps 抠图 一张人物图像像素很大拖入的背景图片像素不太大的照片中 怎样调节人物图像大小适合背景 认真克己事例 能够做到克己复礼的历史人物(就是像柳下惠那样的) 克己 故事 关于克己复礼,严在格内,严管厚爱的小故事? 其中&quot;克己&quot;与&quot;奉公&quot;是两个故事的合二而一.这两个故事分别出自于哪里 论语中关于克己的句子 谢谢 克己者,触事皆成药石;尤人者,启口即是戈矛。 lsles的翻译是:什么意思 三国期间都有哪些人物是以严于克己自律而有所成就的?有什么事迹 british isles是什么意思 自律和克己有什么区别,最好有例子。。。