博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【C++】C++自学进阶(6):继承(2)——继续进阶
阅读量:4488 次
发布时间:2019-06-08

本文共 899 字,大约阅读时间需要 2 分钟。

  继承类不能继承基类的构造函数和析构函数,如果派生类需要的话,我们需要为派生类全新定义构造函数和析构函数。

一、单继承的构造函数

class Person{protected:    char name[10];    char sex;public:    //The Constructor of the base class    Person(char name[],char sex):sex(sex)    {        cout<<"Base class constructor!"<
name,name); }};class Student::public Person{private: int number;public: //Constructor of the derived class Student(int number,char name[],char sex):Person(name,sex) { cout<<"Derived class constructor!"<
number = number; }};

这个部分的干货:

  1. 继承类的构造函数只能初始化它自己新定义的数据,不能初始化从基类继承过来的东西,因此需要在定义继承类的构造函数时调用基类的构造函数,就像这样:

Student(int number,char name[],char sex):Person(name,sex){...}

  2. 定义派生类对象时,会首先运行派生类的构造函数,但是其构造函数会链接到基类的构造函数,所以实际上首先运行的是基类的构造函数。

  3. 如果继承类的构造函数中不写基类的构造函数,编译会出错,因为编译器会默认链接到默认基类构造函数,然而这个函数不存在。

  4. 执行顺序与写的顺序无关,总会先执行基类的构造函数。

转载于:https://www.cnblogs.com/HappyCtest/p/5393635.html

你可能感兴趣的文章
Flask - 特殊装饰器 和 Flask工作结构模式(FBV, CBV)
查看>>
node.js环境搭建以及入门级hello程序
查看>>
LightOJ1282 - Leading and Trailing(快速幂+数学)
查看>>
【mysql】关于checkpoint机制
查看>>
nginx总结
查看>>
如何设定ASH buffer大小
查看>>
改变调用函数的this指针方向
查看>>
【转】mq
查看>>
Java基础知识学习07-抽象类、接口、多态
查看>>
Oracle学习笔记之七(用户管理、角色与权限、导入导出等)
查看>>
linux如何挂载windows下的共享文件
查看>>
常用正则表达式
查看>>
C++学习笔记(IV) 之 表达式
查看>>
Houdini 节点参数读取输入节点的数据列表
查看>>
初识Linq to Entity
查看>>
Linux vmstat命令实战详解
查看>>
FastDFS在centos上的安装配置与使用
查看>>
HDU 1709 The Balance
查看>>
2016/7/7 设置wamp2.5 mysql密码 重点是mysql版本
查看>>
简介几种负载均衡原理
查看>>