关于子类继承基类,构造函数问题

fakine 2014-04-18 11:30:39
class A
{
A(bool bl)
{
bl = true;
};
}


class B :public A
{
B();
~B();
}

B的构造函数 不能B()这样写吗? B的构造函数编译不过,必须写成 B(bool bl ) 吗?
...全文
141 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
MBSHENG 2014-04-18
  • 打赏
  • 举报
回复
引用 楼主 fakine 的回复:
B的构造函数 不能B()这样写吗? B的构造函数编译不过,必须写成 B(bool bl ) 吗?
你可以写成这样
B():A(0);
fakine 2014-04-18
  • 打赏
  • 举报
回复
引用 1 楼 titer1 的回复:
查查 默认构造函数的生成,原理在此
什么意思,我该怎么写
titer1 2014-04-18
  • 打赏
  • 举报
回复
查查 默认构造函数的生成,原理在此
qte_acm 2014-04-18
  • 打赏
  • 举报
回复
首先在类A中,楼主自己定义了一个带参数的构造函数 , 那么系统就不会给类A分配默认构造函数。 第二:类B继承的类A , 那么意味着当给类B的对象进行初始化时 , 就肯定也要对A进行初始化 , 而楼主在类B的构造函数上并没有调用类A的构造函数 , 并且类A有没有无参(默认)构造函数 , 所以就会出错。
请不要生气 2014-04-18
  • 打赏
  • 举报
回复
楼上正解 敢问LZ,这个构造函数给一个临时变量赋值是要闹哪样 class A { A(bool bl) { bl = true; }; }
漂浮一生 2014-04-18
  • 打赏
  • 举报
回复
基类的构造函数不是默认构造函数时,其派生类的构造函数必须调用基类的构造函数,多重继承时,只调用上一层的构造函数

65,208

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧