首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
建立派生类对象时,3种构造函数分别是a(基类的构造函数)、b
[单选题]
建立派生类对象时,3种构造函数分别是a(基类的构造函数)、b(成员对象的构造函数)、c(派生类的构造函数)这3种构造函数的调用顺序为:
abc
acb
cab
cba
添加笔记
邀请回答
收藏(1159)
分享
27个回答
添加回答
28
推荐
Sublimation_Scu
答案:A
在继承中派生类的对象调用构造函数的顺序,应该是先调用基类的构造函数,然后是成员中的对象对应类的构造函数,最后是派生类自己的构造函数.
编辑于 2015-03-24 09:41:06
回复(2)
91
邹康
先父母,再客人,后自己。
发表于 2017-06-30 15:39:56
回复(7)
31
司坤天南
vs2015企业版
发表于 2016-07-19 23:36:44
回复(6)
6
Dream_forever
先父母,后客人,再自己
发表于 2018-05-09 20:29:51
回复(0)
3
咸鱼的崛起
成员对象的构造函数是什么意思?求大佬们解释
发表于 2018-05-19 11:22:42
回复(0)
3
Atom丶丶
这题答案不太对,虽然最后出来的顺序是先基类最后调派生类。但是实际上是先调用派生类的构造函数,然后在派生类的初始化列表中在调用基类的构造函数。所以这道题有问题!
发表于 2017-08-14 17:47:05
回复(1)
3
Ю無の回憶♂
根据程序测试,先调用的是基类的成员对象的构造函数,再调用的基类的构造函数,最后调用派生类的构造函数,答案应该是:bac,但是标准答案上没有
发表于 2015-06-17 13:13:30
回复(7)
2
regretful
成员对象的构造函数:
#include<iostream>
(3149)#include<string>
class A{
private:
string str;
};
中的str在初始化时调用string类的构造函数.
就是这个意思
发表于 2020-03-20 19:19:24
回复(0)
2
~◎LAILI:↓◥﹉﹉~~
先调用父类(包括父类的成员函数),再调用子类,即先基类再派生类,而析构函数却相反,这样比较好记
发表于 2017-05-21 16:59:08
回复(0)
1
justgivemefeeling
正确答案是C,创建子类对象时先调用子类构造函数,然后在子类构造函数初始化列表部分隐式调用基类构造函数,
然后是成员中的对象对应类的构造函数。直接打印的结果不对要调试才能看到。这里有详细解释
http://www.cnblogs.com/33debug/p/6685551.html
编辑于 2017-08-18 15:57:41
回复(1)
0
深藏功与名的打工人很想堆雪人
如果成员对象是基类的数据成员,结果是BAC;
如果成员对象是派生来的数据成员,结果是ABC
发表于 2022-10-17 14:54:50
回复(0)
0
进阶中的牛客人
求问,难道不应该先有派生类,采有派生类的对象吗?所以我认为是先c后b ,哪里错了呀。。。。。
发表于 2021-04-22 09:42:01
回复(0)
0
Adientqjq
先父母,再客人,在自己
发表于 2021-04-08 15:41:12
回复(0)
0
haogeop
想了半天成员对象是啥 这不叫成员变量么
发表于 2020-12-27 10:55:32
回复(0)
0
静夜思123
创建派生类对象时,先执行父类的构造函数,再执行成员对象的构造函数,再执行本类的构造函数
发表于 2020-10-15 23:16:00
回复(0)
0
李正浩大魔王
我觉得这道题的答案还是有些问题,像这位朋友的答案上的测试,
编译器在编译构造函数的时候在所有用户代码之前安插了类成员变量的初始化(如果有虚函数的话,在所有用户代码之前就会生成这个虚函数指针),如果不先调用C()的话,B的无参构造函数是不会被调用的。所以虽然输出的是ABC,但是这道题我觉得应该选B,毕竟问的是调用的顺序
个人看法,欢迎讨论
编辑于 2018-05-12 11:11:25
回复(0)
0
飞翔的程序猿
敲了代码,结论如下:
如果b是a的成员变量的话,顺序是bac (不懂为什么是先成员变量初始化)
如果b是c的成员变量的话,顺序是abc
望大佬们斧正。
发表于 2017-10-11 17:31:05
回复(1)
0
wxmas
VS 2017
发表于 2017-09-16 19:55:49
回复(0)
0
御笙
先调用基类构造函数,再调用派生类构造函数,最后为每个数据成员分配存储空间
发表于 2017-08-25 22:43:03
回复(0)
0
oscarwin
构造函数调用顺序是:
基类构造函数、成员对象构造函数、派生类构造函数
析构函数调用顺序恰好相反:
派生类析构、成员对象析构、基类析构
发表于 2017-04-18 15:08:38
回复(0)
0
带鱼人
这不是java题吧,java不是想什么时候调super就什么时候调?
发表于 2015-09-13 10:18:03
回复(1)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
C++工程师
C++
迅雷
2014
来自:
迅雷2014C++研发...
上传者:
阿守
难度:
27条回答
1159收藏
13190浏览
热门推荐
相关试题
怎样修改linux的时区,在不重启...
迅雷
Linux
评论
(4)
运行 ldd hello 可以得到...
百度
C++
评论
(3)
Linux命令行下如何查找列出/u...
迅雷
Linux
评论
(26)
已知a
40
=...
京东
职能
2019
财务
保险
评论
(1)
《拳皇97》最后BOSS是谁?
游戏常识
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题