1、基类中没有定义构造函数(就是用默认构造函数)或像下面这种定义一个空的构造函数。此时派生类中的构造函数就照常写

#include<iostream>
using namespace std;
class Base //基类
{
public:Base() {}; //假如基类中有无参构造函数或默认构造函数(不写这句,使用系统生成的构造函数)//那么派生类中的有参构造函数就可以正常写
protected:int i;int j;
};class Driver :public Base //派生类
{
public:Driver(int x, int y);
};Driver::Driver(int x, int y) //这里的构造函数正常写就行
{i = x + 1;j = y + 1;cout << "调用派生类构造函数" << endl;cout << "i = " << i << "; j = " << j << endl;
}int main()
{Driver Dv(1, 2);return 0;
}

2、基类中包含有参构造函数

#include<iostream>
using namespace std;
class Base //基类
{
public:Base(int x, int y);
protected:int i;int j;
};class Driver :public Base //派生类
{
public:Driver(int x, int y);
};Base::Base(int x, int y)
{i = x;j = y;cout << "调用基类构造函数" << endl;cout << "i = " << i << "; j = " << j << endl;
}//基类中包含有参构造函数的时候,派生类的构造函数要像下面这样写
//在构造函数的后面增加一个冒号,后面是基类的构造函数
//利用初始化列表,对基类的成员进行初始化(基类重载构造函数需要初始化值)
Driver::Driver(int x, int y):Base(x, y)
{i = x + 1;j = y + 1;cout << "调用派生类构造函数" << endl;cout << "i = " << i << "; j = " << j << endl;
}int main()
{Driver Dv(1, 2);return 0;
}

C++:派生类中的构造函数问题相关推荐

  1. 派生类中构造函数与虚构函数的研究

    1.继承过程中的构造函数 A:继承与派生过程中,基类的构造函数不能被继承,派生类中需要声明自己的构造函数. B:声明构造函数时,只需要对本类中新增成员进行初始化.至于基类继承过来的成员,应该调用基类的 ...

  2. 基类成员的public访问权限在派生类中变为_C++ 派生类的构造函数(学习笔记:第7章 06)...

    派生类的构造函数[1] 默认情况 基类的构造函数不被继承; 派生类需要定义自己的构造函数. C++11规定 可用using语句继承基类构造函数. 但是只能初始化从基类继承的成员. 派生类新增成员可以通 ...

  3. c++中基类与派生类中隐含的this指针的分析

    先不要看结果,看一下你是否真正了解了this指针? 1 #include<iostream> 2 using namespace std; 3 4 class Parent{ 5 publ ...

  4. PetShop 4.0知识点:base 关键字用于从派生类中访问基类的成员

    //base 关键字用于从派生类中访问基类的成员: //调用基类上已被其他方法重写的方法. //指定创建派生类实例时应调用的基类构造函数. //基类访问只能在构造函数.实例方法或实例属性访问器中进行. ...

  5. 不同派生方式下基类成员在派生类中的可访问范围属性

    不同派生方式下基类成员在派生类中的可访问范围属性 派生方式 派生方式 派生方式 基类成员 公有派生 私有派生 保护派生 私有成员 不可访问 不可访问 不可访问 保护成员 保护 私有 保护 公有成员 公 ...

  6. 在派生类中引发基类事件

    1.  在创建基类时,若涉及到事件,事件是特殊类型的委托,只可以从声明它们的类中调用,派生类无法直接调用基类中声明的事件,但是在多数情况,会需要允许派生类调用基类事件,这时,可以再包含该事件的基类中创 ...

  7. C++改变基类成员在派生类中的访问属性

    使用using声明可以改变基类成员在派生类中的访问属性.我们知道基类的公有成员经过公有继承,在派生类中其属性为public的,但是通过using 声明,我们可以将其改为private或protecte ...

  8. C++学习笔记-----永远不要在派生类中改变虚函数的默认参数值

    提到虚函数,我们就会自然而然的想到多态,但是当虚函数中存有默认参数值的时候,在派生类中重定义这个虚函数时不可以改变这个参数的值. 请看下面的例子: #include "stdafx.h&qu ...

  9. dart系列之:dart类中的构造函数

    文章目录 简介 传统的构造函数 命名构造函数 构造函数的执行顺序 重定向构造函数 Constant构造函数 工厂构造函数 总结 简介 dart作为一种面向对象的语言,class是必不可少的.dart中 ...

最新文章

  1. 语义分割--Attention to Scale: Scale-aware Semantic Image Segmentation
  2. 组策略 从入门到精通 (一) 组策略的还原与备份和汇入
  3. PostgreSQL 数据库备份
  4. ​AAAI 2022 | 基于强化学习的视频弹幕攻击
  5. 奇妙的曲线--希尔伯特曲线
  6. centos7解决火狐浏览器fash安装问题
  7. pyqt stop停止线程_面试阿里,字节跳动,腾讯90%都会被问到如何终止线程?有几种方式?你都知道吗?...
  8. python scrapy框架爬虫当当图书网
  9. IE9如何降级返回IE8
  10. Python每日一记129列表换行
  11. 非常全面详细的Sklearn介绍
  12. ios中文字添加删除线
  13. word2003邮件合并后保留小数点位数问题
  14. 调用链监控 - Tracing - APM
  15. 西安电子科技大学计算机复试题目,西安电子科技大学考研复试 微机原理练习题...
  16. BDL語法知識 变量的初始话
  17. 贝叶斯算法及其应用案例
  18. WinRAR如何下载官方免费版
  19. linux桌面管理器未激活,聊聊linux桌面环境和包管理器
  20. 斯阔谷冬奥会首次使用计算机,第八届美国斯阔谷冬奥会_温哥华冬奥会_新浪体育_新浪网...

热门文章

  1. 删除oracle表里的重复记录
  2. Spring 框架基础(01):核心组件总结,基础环境搭建
  3. 6个精心整理的资源网站,送给正在努力的你
  4. springboot项目根据不同的环境启动不同的配置,如开发环境dev,测试环境sit,生产环境application...
  5. App热补丁动态修复技术介绍
  6. openstack kvm 虚拟机磁盘差异衍生
  7. LeetCode:Remove Nth Node From End of List 移除链表倒第n项
  8. apache-storm分布式计算(drpc)开发心得
  9. 架设流媒体服务器[转]
  10. OpenCV2:等间隔采样和局部均值的图像缩小