指出下面程序中的错误:

class Base{

private:

int baseVar;

public:

Base(int var){baseVar=var;}

};

class Derived:public Base{

private:

int derivedVar;

public:

Derived(int var){derivedVar=var;}

};

  • 当创建一个子类的对象时,系统在执行子类构造函数的函数体之前,首先调用父类的构造函数,初始化父类的成员,如果在子类构造函数的初始化列表中没有显示地调用父类的构造函数,系统会隐式地调用父类无参的构造函数。
  • 在子类的构造函数中,如果想显示地调用父类的构造函数,可以在子类构造函数的初始化列表中直接调用父类的构造函数,否则父类中就需要提供无参的构造函数,因为系统会自动调用父类无参的构造函数。
  • 子类Derived的构造函数初始化列表没有显示地调用Base类的构造函数,系统会隐式地调用Base类无参的构造函数,但是Base类中既没有声明无参的构造函数,又由于已经声明了一个有参的构造函数而曹成系统不会自动生成默认的无参构造函数,因此在创建Derived类的对象时会发生初始化错误。

父类构造函数与子类构造函数的关系相关推荐

  1. 总结java父类构造函数对子类构造函数的影响

    1,.父类含有无参构造函数时(显示或隐式),子类实例化时,默认调用父类的无参构造函数(因为子类继承的是父类的属性和方法,只调用父类的无参构造函数就可以继承,因此不会调用有参构造方法): 2.当父类只有 ...

  2. C++ 继承: 父类与子类构造函数与析构函数的关系

    C++ 继承: 父类与子类构造函数与析构函数的关系 一句话:调用子类构造函数时,父类的先调用,然后调用子类的构造函数.调用子类的析构函数时,先调用子类的析构函数,然后调用父类的析构函数. 例:点类,点 ...

  3. java子类和父类构造函数_java 子类和父类构造函数关系

    在创建子类的对象时,jvm会首先执行父类的构造方法,然后再执行子类的构造方法,如果是多级继承,会先执行最顶级父类的构造方法,然后依次执行各级个子类的构造方法 package com.my.test; ...

  4. 讲讲类的实例化顺序,比如父类静态数据,构造函数,字段,子类静态数据,构造函数,字段,当 new 的时候, 他们的执行顺序

    此题考察的是类加载器实例化时进行的操作步骤(加载–>连接->初始化).  父类静态变量.  父类静态代码块.  子类静态变量.  子类静态代码块.  父类非静态变量(父类实例成员变量).  ...

  5. java 继承 子类 实例化_关于Java继承中父类和子类构造函数的问题

    Java子类在实例化时默认调用的是父类的无参构造函数,不论实例化时调用的是子类的有参还是无参构造函数, 1.当父类没有显式定义构造方法时, 编辑器会默认为此类添加一个隐式无参构造函数.此时子类可以有自 ...

  6. java中子类继承父类时是否继承构造函数

    java继承中对构造函数是不继承的,只是调用(隐式或显式). 以下是例子: public class FatherClass { public FatherClass() {        Syste ...

  7. 一文读懂C#中的抽象类、抽象方法、virtual虚函数、override重写函数及父类子类构造函数和析构函数的执行顺序

    // 父类 class People {public People(){Console.WriteLine("执行People构造函数!");}public virtual voi ...

  8. java子类要调用父类的无参构造函数

    如果子类要调用父类的无参构造函数,则通过super()调用来实现. 子类的每一个构造方法都必须显式或隐式调用父类的一个构造方法. 如果不显式调用, 则系统隐式调用super(),即父类的无参构造方法( ...

  9. C++子类继承父类时如何写构造函数

    先摘一段别人的: 构造方法用来初始化类的对象,与父类的其它成员不同,它不能被子类继承(子类可以继承父类所有的成员变量和成员方法,但不继承父类的构造方法).因此,在创建子类对象时,为了初始化从父类继承来 ...

  10. php继承时父类与子类构造函数的优先问题

    php类在继承时父类与子类构造函数的优先问题可以归纳如下: 父类有构造函数,子类没有,在实例化子类时,会调用父类构造方法, 父类有构造函数,子类也有,在实例化子类时,会调用子类构造方法, <?p ...

最新文章

  1. 华为:HarmonyOS 即将开源!
  2. 简单几步教你去除开机出现扫描硬盘!
  3. 如何避免核心代码资源泄漏和如何提高开发效率
  4. java日期时间轴_生成时间轴数据, 从当前 年月日 往前推到几天的日期(前一周时间、、、)...
  5. ZH奶酪:PHP遍历目录/文件的3种方法
  6. 三菱FX5U系列PLC使用MODBUS协议与仪表通信的简单说明
  7. 小米笔记本双固态硬盘安装win10+ubantu20双系统 实录
  8. Android Merged manifest 错误
  9. python moving average_Python实现滑动平均(Moving Average)的代码教程
  10. python爬取5442网站图片
  11. Carp后端开发文档
  12. idea配置tomcat
  13. 快速搭建个人在线书库,随时随地畅享阅读!
  14. 证明:矩阵不同特征值对应的特征向量之间线性无关
  15. 为什么SD-WAN不会杀死MPLS_SD-WAN Cheap
  16. 【专题】Python正则表达式re模块使用
  17. httPs//yy7com/a1phP,header.php
  18. 季节性ARIMA:时间序列预测
  19. 使用XDoclet生成代码
  20. 华南x79主板u盘装系统教程_学不会不收费 几步教你安装Android x86

热门文章

  1. IIS 6.0 不能处理未知的 MIME 类
  2. 简单易用的android 热修复
  3. 研磨设计模式学习笔记1--简单工厂(SimpleFactory)
  4. WPF备忘录(1)有笑脸,有Popup
  5. Oracle单实例数据库迁移到Oracle RAC 环境之(2)--实施篇
  6. REC Solar推出黑色多晶半切片PERC组件,已进入量产化
  7. 交出20分钟后就得到面试通知的一份答卷
  8. 在Gutsy安装Freewins插件手记
  9. Mybatis全局配置文件Configuration.xml详解
  10. Spring的ioc底层原理和简单实例