首页 > 其他分享 >如何在派生类调用基类的同名方法

如何在派生类调用基类的同名方法

时间:2023-05-15 17:34:30浏览次数:39  
标签:调用 returned 同名 派生类 base 基类

需求

C++派生类希望覆盖基类同名方法,但不使用虚函数直接覆盖。

实现

通过namespace区别基类方法的调用。在线试验
https://godbolt.org/z/McKqaoP3r

#include <iostream>

class base
{
public:
    void show()
    {
        std::cout << "This is base speaking." << std::endl;
    }
};

class other: public base
{
public:
    void show()
    {
        base::show();
        std::cout << "This is other speaking." << std::endl;
    }
};

int main()
{
    other o;
    o.show();
    return 0;
}

结果

ASM generation compiler returned: 0
Execution build compiler returned: 0
Program returned: 0
This is base speaking.
This is other speaking.

标签:调用,returned,同名,派生类,base,基类
From: https://www.cnblogs.com/azureology/p/17402557.html

相关文章

  • collection.abc模块下的抽象基类UML类图说明
    说明Iterable、Container和Sized每个容器都应该继承这三个抽象基类,或者实现兼容的协议。Iterable通过__iter__方法支持迭代,Container通过__contains__方法支持in运算符,Sized通过__len__方法支持len()函数。Collection这个抽象基类是3.6新增的,自身没有方法,目的是方便子类化I......
  • 接口继承和抽象类继承区别以及普通类和抽象类做基类的区别
    接口继承和抽象类继承区别C#中接口和抽象类都可以用于实现继承,但是它们有一些重要的区别。接口是一种行为规范,它只规定了类应该包括哪些方法,但是没有提供任何实现细节,因此实现接口的类必须提供所有规定的方法实现;抽象类是一种半成品类,它可以包含实现代码以及其他抽象方法,子类必......
  • C#中的隐形坑之泛型基类中的静态变量
    ​切记:泛型基类中定义的静态变量,在各子类中是不会共享数据的。一般在进程内共享数据可选择定义全局const变量或static变量。本文的主角就是static变量。例如我们要定义一个可以跨方法使用的事务时,会想到在基类中定义一个静态变量:[ThreadStatic]publicstaticIDbTransaction......
  • Vue3实现组件级基类的几种方法
    Vue3的组件有三种代码组织方式纯OptionAPI(不含setup)optionAPI+setup纯setup(即compositionAPI)对于这三种形式,设置基类的方法也略有不同。使用mixins、extendsvue3提供了mixins和extends,但是尝试之后发现这两种方法只支持纯OptionAPI,设置的data会被识别,但是设置的......
  • 私有继承派生类使用基类的成员函数
    按要求完成下面的程序:1、定义一个Animal类,成员包括:(1)整数类型的私有数据成员m_nWeightBase,表示Animal的体重;(2)整数类型的保护数据成员m_nAgeBase,表示Animal的年龄;(3)公有函数成员set_weight,用指定形参初始化数据成员m_nWeightBase;(4)公有成员函数get_weight,返回数据成员m_nWeightBase的......
  • 抽象基类
    一:声明抽象基类Shape,由它派生出三个类,圆形Circle,矩形Rectangle,三角形Triangle,用一个函数输出三个面积。输入格式:在一行中依次输入5个数,圆的半径,长方形的高和宽,三角形的高和底,中间用空格分隔输出格式:圆的面积,长方形的面积,三角形的面积,小数点后保留2位有效数字,每个面积占一行......
  • 虚基类应用
    一、编写动物类animal,受保护数据成员name(名称、,string),age(年龄,int),公有函数成员void show(),输出“Animal,名称,年龄";公有派生鱼类fish加兽类beast,鱼类增加受保护数据成员velocity(速度,int),公有函数成员void show(),输出“Fish,名称,年龄,速度";兽类增加受保护数据成员aPpetite(食......
  • cp -f 同名文件依然需要确认
    问题在Linux中使用cp命令时,发现将目录中文件复制到另一个目录具有相同文件名称时,同名文件强制覆盖参数$cp-rf不生效,依然需要手工填写y确认覆盖。原因cp命令被系统设置了别名,相当于cp=‘cp-i’解决#方法一:使用原生cp命令$/bin/cp-rfxxxx#方法二#先......
  • 观察基类与派生类中成员函数的调用
    一、问题描述。用对象和指针来观察基类与派生类中成员函数的调用。二、设计思路。1、定义一个拥有fn1,fn2两个成员函数的基类BaseClass2、由基类BaseClass派生出一个同样拥有fn1,fn2两个成员函数的派生类DerivedClass3、在主函数中声明一个派生类的对象,及基类与派生类的指针4......
  • 观察基类与派生类的构造函数与析构函数的调用顺序
    一、设计思路1.定义一个哺乳动物类Mammal,2.派生出一个狗类Dog,3.定义一个dog类的对象,通过代码的执行顺序来判断观察观察基类与派生类的构造函数与析构函数的调用顺序。二、程序流程图。   三、代码实现。#pragmaonceclassMammal{public: Mammal(); ~Mammal();}......