CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  工具平台和程序库

父类的构造函数带有参数,子类重载构造函数的时候竟然出问题了?

楼主lqsSunYan(铭心)2004-09-02 19:57:34 在 C/C++ / 工具平台和程序库 提问

class   a  
  {  
          a(int   a,   int   b,   int   c);  
          //a();  
  };  
   
  class   b:   public   a  
  {  
            b(int   d,   int   e,   int   f);  
  };  
   
  如果去掉注释,就可以。否则提示     a:no   appropriate   default   constructor   available 问题点数:20、回复次数:5Top

1 楼DiabloWalkOnTheEarth(我想到个绝妙的昵称,只是地方太小,写不下)回复于 2004-09-02 20:01:58 得分 0

可以啊Top

2 楼meijing(水手)回复于 2004-09-02 20:05:11 得分 15

1。   题目错了:你说的不叫“子类重载构造函数”。  
  2。   当然错了:构造子类对象的时候,在进入子类构造函数之前会先调用父类的构造函数。  
  如果没有显式调用父类构造函数就会调用默认的父类构造函数。但是你的父类又没有默认构造函数所以自然会出错。  
  3。几种修改方法:  
  a。如你所说。  
  b。显示调用父类构造函数:  
  class   a  
  {  
          a(int   a,   int   b,   int   c);  
          //a();  
  };  
   
  class   b:   public   a  
  {  
            b(int   d,   int   e,   int   f);  
  };  
  //   in   .cpp   file  
  b::b(int   d,   int   e,   int   f):   a(d,   e,   f)  
  {  
  ...  
  }Top

3 楼hcj2002(流浪者·躬自厚而薄责于人 )回复于 2004-09-02 20:47:09 得分 1

同意楼上的!Top

4 楼runall(龙行天下)回复于 2004-09-03 09:57:19 得分 1

子类构造函数需要先调用父类的构造函数,如果你没有在子类构造函数中显示调用父类构造函数,默认调用的父类的默认构造函数(不带参数的构造函数)  
   
  因为你在父类中有了一个带参数的构造函数,所以编译器不会给你创建默认的不带参数构造函数,而你的子类中又没有显示调用父类的构造函数,编译器在调用父类的默认构造函数时就会出错Top

5 楼Andy84920(你也不懂)回复于 2004-09-03 10:17:41 得分 3

如果去掉注释,就可以。否则提示   a:no   appropriate   default   constructor   available  
  //因为你的派生类没有显示调用非默认基类构造函数,所以系统默认派生类调用  
  //基类的默认构造函数.而你基类没有这个默认构造函数.那么你将失败.Top

相关问题

  • 构造函数和[]重载的问题
  • 如何重载FORM的构造函数?
  • 如何防止重载构造函数?
  • 构造函数重载的问题
  • 怎么重载类的构造函数?
  • 如何重载构造函数?
  • 拷贝构造函数能否重载?
  • "重载构造函数"与"重载赋值运算符"
  • 怎样实现函数重载?子类中怎样调用基类的重载函数?
  • 子类如何继承父类的构造函数?

关键词

  • 函数
  • 构造函数
  • 子类
  • 调用
  • 父类
  • 默认
  • 构造
  • 基类
  • 显示
  • 带参数

得分解答快速导航

  • 帖主:lqsSunYan
  • meijing
  • hcj2002
  • runall
  • Andy84920

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo