函数继承允许派生类复用基类的函数定义,通过以下步骤实现:定义抽象基类,包含纯虚函数。在派生类中使用 override 关键字继承并实现基类的函数。实战案例:创建抽象基类 shape,派生类 circle 和 rectangle 计算不同形状的面积。
C++ 函数继承详解:定义和使用抽象基类
什么是函数继承?
函数继承是一种 C++ 特性,它允许派生类继承基类的函数定义,从而在子类中复用基类的功能。
立即学习“C++免费学习笔记(深入)”;
定义抽象基类
一个抽象基类是一个不打算被实例化的基类,它只作为其他类的基类。它包含纯虚函数(即没有函数体的函数),这些函数必须在派生类中被重写。要声明一个抽象基类,可以使用 virtual 和 = 0,例如:
class Shape { public: virtual double area() const = 0; };
派生类中的函数继承
派生类可以继承抽象基类的函数定义,方法是使用 override 关键字并提供函数的实现。例如:
class Circle : public Shape { public: override double area() const { return M_PI * radius * radius; } private: double radius; };
实战案例:形状面积计算
让我们以计算形状面积为例进行一个实战演示。我们创建一个 Shape 抽象基类,并创建 Circle 和 Rectangle 派生类来计算圆和矩形的面积:
#include <iostream> #include <cmath> using namespace std; class Shape { public: virtual double area() const = 0; }; class Circle : public Shape { public: Circle(double radius) : radius(radius) {} override double area() const { return M_PI * radius * radius; } private: double radius; }; class Rectangle : public Shape { public: Rectangle(double width, double height) : width(width), height(height) {} override double area() const { return width * height; } private: double width; double height; }; int main() { Circle circle(5); cout << "Circle area: " << circle.area() << endl; Rectangle rectangle(3, 4); cout << "Rectangle area: " << rectangle.area() << endl; return 0; }
运行输出:
Circle area: 78.5398 Rectangle area: 12
以上就是C++ 函数继承详解:如何定义和使用抽象基类?的详细内容,更多请关注php中文网其它相关文章!
c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号