`
isiqi
  • 浏览: 16497331 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Item 33 派生时小心重名函数族

 
阅读更多

1> 普通变量的名字覆盖

2> 派生时发生的名字覆盖

只是因为名字被覆盖,就导致子类不能派生基类的一些函数。
编译器如此处理,是为了在你重定义“公有派生 ”来的函数族时,不小心漏掉其中一两个。但我们在实践中,常常是并不想重定义所有的函数的。
解决的方法是使用using:

加上这两句,编译运行就没有问题了。

私有继承 的时候,情况是不同的:

分享到:
评论

相关推荐

    派生类构造函数和析构函数的执行顺序

    例如,在上面的例子中,当撤销 B 类的对象时,先执行派生类 B 的析构函数,然后执行基类 A 的析构函数。输出结果是:派生类的析构函数、基类的析构函数。 需要注意的是,派生类的构造函数和析构函数的执行顺序是...

    在派生类的构造函数中调用基类的构造函数

    在创建派生类的对象时,需要确保基类的数据成员和成员函数也得到正确的初始化。这就涉及到了在派生类的构造函数中调用基类构造函数的知识点。 首先,每个类都有一个构造函数,它在对象创建时自动执行,用于初始化类...

    C++派生类的构造函数

    当我们谈论"派生类的构造函数"时,我们指的是在创建派生类实例时执行的特殊函数,它负责初始化派生类的对象。 1. 构造函数的作用:构造函数的主要任务是对对象进行初始化。在C++中,每个类都有一个或多个构造函数,...

    C++有子对象的派生类的构造函数

    总结,C++派生类的构造函数处理子对象时,需要关注子对象的构造方式、初始化顺序以及成员初始化列表的使用。理解并熟练掌握这些概念对于编写高效、可靠的C++代码至关重要。通过不断练习和实践,你可以更好地理解和...

    C++\测试 对象成员构造函数、基类构造函数、派生类本身的构造函数 的先后顺序.rar

    在C++编程中,对象的构造过程涉及到多个层面,包括对象成员构造函数、基类构造函数以及派生类本身的构造函数。理解它们的执行顺序对于编写健壮的代码至关重要。以下将详细阐述这三个构造函数的调用时机和逻辑。 1. ...

    解析C++中多层派生时的构造函数及一些特殊形式

    C++多层派生时的构造函数 一个类不仅可以派生出一个派生类,派生类还可以继续派生,形成派生的层次结构。在上面叙述的基础上,不难写出在多级派生情况下派生类的构造函数。 通过例下面的程序,读者可以了解在多级...

    c++派生类继承构造函数方法

    c++派生类继承构造函数方法!!!!!!!!!!!

    派生的析构函数被调用

    基类的析构函数默认是虚函数(virtual),这样在派生类的对象指针指向基类时,如果通过指针调用析构函数,会执行相应的派生类析构函数,确保所有资源都能被正确释放。这是因为C++支持动态绑定或称为运行时多态。 ...

    详解C++编程中多级派生时的构造函数和访问属性

    C++多层派生时的构造函数 一个类不仅可以派生出一个派生类,派生类还可以继续派生,形成派生的层次结构。在上面叙述的基础上,不难写出在多级派生情况下派生类的构造函数。 通过例下面的程序,读者可以了解在多级...

    继承类的构造函数

    基类的构造函数是不能继承的,在声明派生类时,派生类并没有把基类的构造函数继承过来,因此,对继承过来的基类成员初始化的工作也要由派生类的构造函数承担。 在设计派生类的构造函数时,不仅要考虑派生类所增加的...

    国密SM3算法及基于SM3的密钥派生函数KDF

    国密SM3算法及基于SM3的密钥派生函数KDF,可配合国密SM2算法进行消息压缩和密钥派生

    派生类的构造函数详解

    7. **默认构造函数**:如果基类有默认构造函数(即无参数的构造函数),或者编译器可以自动提供一个(基类没有定义任何构造函数时),派生类构造函数可以省略对基类构造函数的调用。 8. **子对象的处理**:子对象的...

    构造函数和析构函数在派生类中执行顺序须知

    构造函数和析构函数在派生类中的执行顺序须知 在面向对象编程中,构造函数和析构函数是非常重要的概念,特别是在派生类中,它们的执行顺序直接影响了类的正确初始化和清理。在本文中,我们将讨论构造函数和析构函数...

    C++基类指针和派生类指针之间的转换方法讲解

    所谓隐藏是指使用常规的调用方法,派生类对象访问这个函数时,会优先访问派生类中的这个函数,基类中的这个函数对派生类对象来说是隐藏起来的。 但是隐藏并不意味这不存在或完全不可访问。通过 b->Base::func()访问...

    设计基类点类(Point)、直接派生类圆类(Circle)、间接派生类圆柱体类(Cylinder),将求面积的函数(area)声明成虚函数,并在主函数实现虚函数

    题目:设计基类点类(Point)、直接派生类圆类(Circle)、间接派生类圆柱体类(Cylinder),将求面积的函数(area)声明成虚函数,并在主函数实现虚函数调用,输出点类、圆类和圆柱体类面积。提示:其他数据成员和...

    在C++多继承体系当中,在派生类中可以重写不同基类中的虚函数。下面就是一个例子:

    当一个基类的成员函数被声明为`virtual`时,它的所有派生类都可以重写这个函数。重写意味着派生类可以提供一个同名函数,该函数将替代基类中的函数版本,从而允许不同的行为基于对象的实际类型。例如: ```cpp void...

    c#构造函数的调用过程

    当创建一个新对象时,构造函数会自动被调用。本文将通过一个具体的示例来解释构造函数的调用过程。 #### 定义类及其派生类 首先,我们定义了一个名为`A`的基类,它包含一个整型成员变量`x`以及两个构造函数:一个...

    构造函数不能声明为虚函数,析构函数可以声明为虚函数

    1. **避免内存泄漏**:如果基类指针指向派生类对象,并且基类的析构函数不是虚函数,那么通过基类指针删除派生类对象时,只会调用基类的析构函数。这样就会导致派生类中额外分配的资源没有得到释放,从而引发内存...

Global site tag (gtag.js) - Google Analytics