C++继承技巧:如何从派生类函数中优雅调用父类函数?

作者:微信公众号:【架构师老卢】
1-9 8:31
152

概述:在C++中,通过使用虚函数和Base::语法,可以从派生类函数中调用父类函数。虚函数机制允许在派生类中重写父类函数,而Base::语法确保调用父类版本。这种灵活性使得在派生类中能够方便地重用和扩展父类函数。

在C++中,通过使用虚函数和super关键字(在C++中通常使用Base::)来从派生类函数中调用父类函数。虚函数机制允许在派生类中重写父类函数,并通过super关键字调用父类版本。

方法

  1. 使用虚函数
    • 在父类中声明虚函数,允许在派生类中重写。
  2. 使用 Base::
    • 在派生类中通过Base::来调用父类的函数。

步骤

  1. 定义父类
    • 在父类中声明虚函数。
  2. 派生类中重写
    • 在派生类中重写虚函数,使用 Base:: 来调用父类函数。

实例源代码

#include <iostream>

// 父类
class Base {
public:
    // 虚函数
    virtual void display() {
        std::cout << "父类函数" << std::endl;
    }
};

// 派生类
class Derived : public Base {
public:
    // 重写父类虚函数
    void display() override {
        // 调用父类函数
        Base::display();
        std::cout << "派生类函数" << std::endl;
    }
};

int main() {
    // 创建派生类对象
    Derived derivedObj;

    // 调用派生类函数
    derivedObj.display();

    return 0;
}

注意事项

  1. 确保父类函数为虚函数:只有虚函数才能在派生类中被重写。
  2. 注意函数签名匹配:派生类中的重写函数的签名(返回类型、参数列表)应与父类虚函数完全匹配。
  3. 使用 Base:: 语法:在派生类中调用父类函数时,使用 Base:: 来明确指定。

在C++中,通过使用虚函数和Base::语法,可以从派生类函数中调用父类函数。这种机制提供了灵活性,使得在派生类中能够重写并调用父类的函数。确保函数签名匹配并注意语法的正确使用。

阅读排行