猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
C++中子类构造函数调用时父类构造函数调用的问题
实例化子类对象时,先进行父类构造函数,如果父类构造函数中既有默认构造函数也有有参构造函数,那么会调用哪个呢?
kid123
浏览 3093
回答 4
4回答
guozhchun
默认调用无参的构造函数。如果需要调用有参的构造函数,需要自己指定。格式为:派生类名(形参表) : 基类名(实参表)例如:class A { public: A(); A(int a); }; class B { public: B(); B(int b); }; // 如果定义 B 类构造函数为 B(){ /* other code */ },或者 B(int b){ /* other code */ } 时,调用 A 类的 A() 构造函数 // 如果定义 B 类构造函数为 B():A(3){ /* other code */ }, 或者 B(int b): A(b){ /* other code */ }时,调用 A 类的 A(int a)构造函数
1
0
0
Asan_Cai
如果没有使用初始化列表显示调用父类构造函数,就调用父类默认构造函数
2
0
0
慕神3775235
(1)如果参数有默认值,则调用时子类构造函数不进行向父类构造函数传参就会发生错误 (2)如果参数无默认值,调用时传参的是调用有参数的,不调用时调用的是默认的父类构造函数
1
0
0
乱舞的旋律
看你怎么实例化子类咯,如果 子类参数设置是传给父类的构造函数的话写法正确的那就是有参的啊,如果子类没有参数,那子类父类肯定都是默认构造
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
C++
typedef入门问题
1 回答
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续