请选择 进入手机版 | 继续访问电脑版

环信

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: mmap uikit gcc
查看: 275|回复: 0

C++范例: 继承的构造函数

[复制链接]

42

主题

68

帖子

229

积分

中级会员

Rank: 3Rank: 3

积分
229
发表于 2016-1-21 10:04:24 | 显示全部楼层 |阅读模式

  1. #include <iostream>

  2. using namespace std;

  3. class Father{
  4. protected:
  5.     string name;
  6. public:
  7.     Father():name("no name")
  8.     {
  9.         cout<<"Father()"<<endl;
  10.     }

  11.     Father(string name):name(name)
  12.     {
  13.         cout<<"Father("<<name<<")"<<endl;
  14.     }

  15.     ~Father()
  16.     {
  17.         cout<<"~Father()"<<endl;
  18.     }

  19.     void show()
  20.     {
  21.         cout<<"name:"<<name<<endl;
  22.     }
  23. };

  24. //继承
  25. class Child : public Father{
  26. public:
  27.     Child()
  28.     {
  29.         cout<<"Child()"<<endl;
  30.     }

  31.     Child(string name2)
  32.     {
  33.         cout<<"Child("<<name2<<")"<<endl;
  34.     }
  35.     /*
  36.      * 调用父类的有参构造函数需要加上初始化列表:
  37.     Child(string name2) : Father(name2)
  38.     {
  39.         cout<<"Child("<<name2<<")"<<endl;
  40.     }
  41.     */
  42.     ~Child()
  43.     {
  44.         cout<<"~Child()"<<endl;
  45.     }

  46.     void show()
  47.     {
  48.         Father::show();
  49.         cout<<"child show name:"<<name<<endl;
  50.     }
  51. };

  52. int main()
  53. {
  54.     //Child c;
  55.     //c.show();

  56.     Child c1("with name");//先调用父类的无参构造函数,再调用子类的有参构造函数,再调用父类的show无参no name
  57.     c1.show();
  58.     return 0;
  59. }

复制代码



回复

使用道具 举报

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

本版积分规则

Archiver|环信 Glofty.com ( 粤ICP备15084637号 )

GMT+8, 2017-4-27 22:56 , Processed in 0.218172 second(s), 22 queries .

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