legongju.com
我们一直在努力
2024-12-26 21:14 | 星期四

C++类的继承虚函数怎样用

在C++中,虚函数(virtual function)允许我们在派生类中重写基类中的函数。当使用继承时,如果基类中的某个成员函数被声明为虚函数,那么派生类中的同名函数将自动成为虚函数。这使得我们可以通过基类指针或引用来调用派生类中的实现,从而实现多态性。

以下是一个简单的示例,展示了如何使用继承和虚函数:

#include 

// 基类 Shape
class Shape {
public:
    // 虚函数 area()
    virtual double area() const {
        return 0.0;
    }
};

// 派生类 Circle,继承自 Shape
class Circle : public Shape {
public:
    // 重写基类中的虚函数 area()
    double area() const override {
        double radius = 5.0; // 假设半径为 5
        return 3.14159 * radius * radius;
    }
};

// 派生类 Rectangle,继承自 Shape
class Rectangle : public Shape {
public:
    // 重写基类中的虚函数 area()
    double area() const override {
        double width = 4.0; // 假设宽度为 4
        double height = 6.0; // 假设高度为 6
        return width * height;
    }
};

int main() {
    // 使用基类指针指向派生类对象
    Shape* shape_ptr = new Circle();
    std::cout << "圆的面积: " << shape_ptr->area() << std::endl;

    shape_ptr = new Rectangle();
    std::cout << "矩形的面积: " << shape_ptr->area() << std::endl;

    // 释放内存
    delete shape_ptr;

    return 0;
}

在这个示例中,我们定义了一个名为Shape的基类,其中包含一个虚函数area()。然后,我们定义了两个派生类CircleRectangle,分别表示圆形和矩形。这两个派生类都重写了基类中的area()函数,以实现各自的面积计算。

main()函数中,我们使用基类指针shape_ptr分别指向CircleRectangle对象,并通过基类指针调用area()函数。由于area()是虚函数,因此会根据实际对象类型调用相应的派生类实现。最后,我们输出计算得到的面积。

未经允许不得转载 » 本文链接:https://www.legongju.com/article/21062.html

相关推荐

  • 如何优化c++ rpc框架的性能

    如何优化c++ rpc框架的性能

    优化C++ RPC(远程过程调用)框架的性能是一个复杂的过程,涉及到多个方面。以下是一些建议,可以帮助你提高C++ RPC框架的性能: 选择高效的序列化/反序列化库:...

  • c++ rpc框架的主要特性有哪些

    c++ rpc框架的主要特性有哪些

    C++ RPC(远程过程调用)框架的主要特性包括以下几个方面: 跨语言与跨平台:C++ RPC框架通常支持多种编程语言,如C++、Java、Python等,这提供了更好的可扩展性...

  • c++ rpc框架的安全性怎样保障

    c++ rpc框架的安全性怎样保障

    C++ RPC(远程过程调用)框架的安全性保障是一个复杂且关键的问题。以下是一些建议,可以帮助确保C++ RPC框架的安全性: 身份验证和授权: 实现强大的身份验证机...

  • c++ rpc框架的性能表现如何

    c++ rpc框架的性能表现如何

    C++ RPC(远程过程调用)框架的性能表现通常取决于多个因素,包括框架的设计、实现、网络条件、硬件性能以及应用程序的具体需求。以下是一些可能影响C++ RPC框架...

  • C++类的继承析构函数执行

    C++类的继承析构函数执行

    在C++中,类的继承析构函数执行是指当一个派生类对象被销毁时,其析构函数会被自动调用,从而确保基类和派生类中的资源得到正确释放
    当一个类被继承时,基类...

  • C++类的继承构造函数调用

    C++类的继承构造函数调用

    在C++中,当使用继承时,基类(父类)的构造函数会在派生类(子类)的构造函数体执行之前被调用。这是为了确保基类的成员变量和方法在派生类对象创建时已经初始化...

  • C++类的继承访问权限如何

    C++类的继承访问权限如何

    在C++中,类的继承访问权限主要有三种:public(公有)、protected(保护)和private(私有)。这些访问权限决定了基类成员在派生类中的可见性。 Public(公有)...

  • C++类的继承方式有几种

    C++类的继承方式有几种

    C++ 类的继承主要有三种方式:公有继承(public inheritance)、保护继承(protected inheritance)和私有继承(private inheritance)。以下是这三种继承方式的...