鱼C论坛

 找回密码
 立即注册
查看: 3044|回复: 1

多继承求助

[复制链接]
发表于 2013-3-6 16:47:10 | 显示全部楼层 |阅读模式
1鱼币
  1. #include <iostream>
  2. using namespace std ;

  3. class Time
  4. {
  5. public:
  6.    Time( short h , short m , short s )
  7.    :hour( h ) , minute( m ) , second( s ){}
  8.    void display( )
  9.    {
  10.       cout << "当前是" << hour << ":" << minute << ":" << second << endl ;
  11.    }
  12. private:
  13.    short hour , minute , second ;
  14. };

  15. class Date
  16. {
  17. public:
  18.    Date( short y , short m , short d )
  19.    :year( y ) , month( m ) , day( d ){}
  20.    void display( )
  21.    {
  22.       cout << "当前是" << year << "/" << month << "/" << day << endl ;
  23.    }
  24. private:
  25.    short year , month , day ;
  26. };

  27. class TimeDate :public Time , public Date
  28. {
  29. public:
  30.    TimeDate( short y = 2013 , short mo = 3 , short d = 6 , short h = 16 , short mi = 33 , short s = 50 )
  31.    :Date( y , mo , d ) ,Time( h , mi , s ){}
  32.    void display()
  33.    {
  34.       Date::display();
  35.       Time::display();
  36.    }
  37. };
  38. int main()
  39. {
  40.    TimeDate a();
  41.    a.display();
  42. }
复制代码
为什么是错的
请教

最佳答案

查看完整内容

因为你提供构造函数都含有默认值,那创建对象方式与默认构造函数相同第一种: 第二种: 当用带有默认参数的构造函数进行初始化的时候,可以用类似默认参数初始化类的对象的方式来进行初始化。特别注意:以下所有情况均为把有参构造函数用默认值初始化的特例(长得像,但并不是默认构造函数),并非有默认构造函数。创建对象方式与默认构造函数相同,但意义不一样。以下是在声明时成成员初始化为0,则调用形式与默认构造函数 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-3-6 16:47:11 | 显示全部楼层
因为你提供构造函数都含有默认值,那创建对象方式与默认构造函数相同第一种:
  1. TimeDate a;
  2.    a.display();
复制代码
第二种:
  1. TimeDate *a = new TimeDate;
  2.         a->display();
复制代码



当用带有默认参数的构造函数进行初始化的时候,可以用类似默认参数初始化类的对象的方式来进行初始化。

特别注意:以下所有情况均为把有参构造函数用默认值初始化的特例(长得像,但并不是默认构造函数),并非有默认构造函数。创建对象方式与默认构造函数相同,但意义不一样。以下是在声明时成成员初始化为0,则调用形式与默认构造函数相同。其本质是使用带

例1:父类无构造函数(有编译器自己创建的trival型的),子类已经有有参构造函数。生成对象的时候实际调用的是用参构造函数,只不过参数都是0,可以省略不写。


参考资料:

http://blog.csdn.net/generalhking/article/details/7947989

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 18:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表