1:当父类含有带参数的构造函数时,创建子类的时候会调用它吗?答案是通过显示方式才可以调用。

无论创建子类对象时调用的是那种子类构造函数,都会自动调用父类默认构造函数。若想使用父类带参数的构造函数,则需要显式的方式。

2:代码如下:

// 8.3.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
using namespace std;class CEmployee                                    //定义CEmployee类
{
public:int m_ID;                                        //定义数据成员char m_Name[128];                                //定义数据成员char m_Depart[128];                                //定义数据成员CEmployee(char name[])                                    //带参数的构造函数
    {strcpy(m_Name,name);cout << m_Name<<"调用了CEmployee类带参数的构造函数"<< endl;    //输出信息
    }CEmployee()                                    //无参构造函数
    {strcpy(m_Name,"MR");cout << m_Name<<"CEmployee类无参构造函数被调用"<< endl;    //输出信息
    }~CEmployee()                                    //析构函数
    {cout << "CEmployee类析构函数被调用"<< endl;    //输出信息
    }
};class COperator :public CEmployee                        //从CEmployee类派生一个子类
{
public:char m_Password[128];//定义数据成员COperator(char name[ ]):CEmployee(name)        //显示调用父类带参数的构造函数。注意格式,自己的构造函数:父类的构造函数{        //设置数据成员cout << "COperator类构造函数被调用"<< endl;        //输出信息
    }COperator():CEmployee("JACK")                //显示调用父类带参数的构造函数{        //设置数据成员cout << "COperator类构造函数被调用"<< endl;        //输出信息
    }~COperator()                                    //析构函数
    {cout << "COperator类析构函数被调用"<< endl;        //输出信息
    }
};
int main(int argc, char* argv[])                            //主函数
{COperator optr1;                            //定义一个COperator对象,调用自身无参构造函数COperator optr2("LaoZhang");               //定义一个COperator对象,调用自身带参数构造函数return 0;
}

View Code

运行结果:

转载于:https://www.cnblogs.com/lovemi93/p/7570932.html

C++入门经典-例8.3-子类显示调用父类构造函数相关推荐

  1. 23.C++- 继承的多种方式、显示调用父类构造函数、父子之间的同名函数、virtual虚函数...

     上章链接: 22.C++- 继承与组合,protected访问级别 继承方式 继承方式位于定义子类的":"后面,比如: class Line : public Object // ...

  2. C++入门经典-例6.23-字符串数组赋值与string

    C++入门经典-例6.23-字符串数组赋值与string 1:代码如下: // 6.23.cpp : 定义控制台应用程序的入口点. //#include "stdafx.h" #i ...

  3. C++入门经典-例2.14-使用移位运算

    C++入门经典-例2.14-使用移位运算 1:代码如下: // 2.14.cpp : 定义控制台应用程序的入口点. //#include "stdafx.h" #include & ...

  4. 继承实现的原理、子类中调用父类的方法、封装

    一.继承实现的原来 1.继承顺序 Python的类可以继承多个类.继承多个类的时候,其属性的寻找的方法有两种,分别是深度优先和广度优先. 如下的结构,新式类和经典类的属性查找顺序都一致.顺序为D--- ...

  5. Day19:继承实现的原理、子类中调用父类的方法、封装

    一.继承实现的原来 1.继承顺序 Python的类可以继承多个类.继承多个类的时候,其属性的寻找的方法有两种,分别是深度优先和广度优先. 如下的结构,新式类和经典类的属性查找顺序都一致.顺序为D--- ...

  6. 关于自定义异常中为什么带参构造器需要显示调用父类异常的带参构造器

    在听课的时候听到自定义异常时,视频上讲的定义异常的时候如果是带参构造器需要显示调用父类异常的带参构造器,原因是什么呢? 首先我们需要看一下Exception和ERROR的父类Throwable的源码: ...

  7. Python 在子类中调用父类方法详解(单继承、多层继承、多重继承)

    Python 在子类中调用父类方法详解(单继承.多层继承.多重继承)   by:授客 QQ:1033553122   测试环境: win7 64位 Python版本:Python 3.3.5 代码实践 ...

  8. 【Kotlin】Kotlin 类的继承 三 ( super 关键字使用 | super@ 外部调用父类方法 | 子类选择性调用 父类 / 接口 方法 super )

    文章目录 I . 子类调用父类总结 II . 子类调用父类方法 ( super ) III . 子类内部类调用父类方法 ( super@ ) IV . 子类选择调用不同的 父类 / 接口方法 ( su ...

  9. 在子类中调用父类的方法super

    1.没有super之前,在子类里面需要父类里面的逻辑,但是我们是通过派生(自己定义了一个init,增加了一条line) class vehichle:#定义一个交通工具的类Country=" ...

最新文章

  1. [翻译]一步步教你配置SQL SERVER合并复制(四)提高Distributor的安全性
  2. Python Tensorflow神经网络实现股票预测
  3. mysql 对象名无效_如何解决“SQL对象名无效”的问题
  4. Hadoop RPC客户端调用服务代码示例
  5. NS2安装笔记 - Ubuntu9.10
  6. java中一个线程最小优先数_Java线程的优先级
  7. c++rpg黑框游戏_c++实现简单RPG对战游戏的代码.doc
  8. UVA - 10817 Headmaster's Headache
  9. Linux jdk 环境变量配置
  10. 如何在settings里的休眠模式里添加永不休眠
  11. 这可能是程序员写的最暖的一首歌了
  12. VS 2005 下载地址
  13. IDEA This is not a valid Java qualified name问题解决
  14. win7安装AHCI驱动
  15. oracle 简版客户端instantclient使用 oledb ODAC组件使用
  16. Vue 面试常见知识点总结
  17. matlab 光栅 傅里叶,【图像】【转帖】利用matlab绘制光栅条纹图像
  18. java tessdata训练_Tesseract训练中文字体识别
  19. 软件不能用Surface Pro触控笔 微软这有解决办法
  20. 遭遇Trojan.DL.Win32.Autorun.yuz,Trojan.Win32.Inject.gh,Trojan.Win32.Agent.zsq等

热门文章

  1. PKCS7填充标准代码--C语言实现
  2. 3.3 matlab用switch语句实现选择结构
  3. 机器学习之线性回归(Linear Regression)
  4. PageRank算法以及Python实现(简洁版)
  5. 聊天工具简单实现(python 半双工聊天)
  6. 2.3.2 Batch Norm介绍
  7. Python:cv2.imread读入图片后返回NoneType的解决方案
  8. 卢卡斯定理及其卢卡斯定理的拓展
  9. 2020华为推迟发布鸿蒙战略,早新闻:华为5nm麒麟芯片延期,确认新版鸿蒙将发...
  10. 登录锁定状态下Win7关机技巧总结