关于构造函数的执行

来源:互联网 发布:python中turtle画玫瑰 编辑:程序博客网 时间:2024/05/19 20:46

今天在网上看到了一篇别人的腾讯面试经历,看到他给的几个面试题,基本上都是和c++有关的,有两个让我纠结了好久,以下是那位朋友写的博客。大家可以看看,对自己的学习有帮助的。

点击打开链接

下面是我对于他博客中两个问题的看法。

struct A{ A(){std::cout<<"A";}};struct B:public A{ B(){std::cout<<"B";}};struct C{ C(){std::cout<<"C";} B b; A a;};void main(){ C c;}
运行结果 ABAC
这是一个写运行结果的题,起初我有点糊涂,以为只会输出C 后来,经过高人的指点,明白了,因为b,a 是c 的成员,所以类C会先构造B对象,在构造B的同时,因为B派生自A,所以会先输出A,再输出B,又因为A a,所以输出A, 最后输出C。

为什么最后输出C呢,类要先构造对象中的成员再执行构造函数体。

ok,这个弄明白了。

原创粉丝点击