Function inheritance allows derived classes to reuse the function definitions of the base class, which is achieved through the following steps: Define an abstract base class, including pure virtual functions. Use the override keyword in the derived class to inherit and implement the functions of the base class. Practical case: Create an abstract base class Shape, and derive classes Circle and Rectangle to calculate the areas of different shapes.
C Detailed explanation of function inheritance: defining and using abstract base classes
What is function inheritance?
Function inheritance is a C feature that allows derived classes to inherit the function definitions of a base class, thereby reusing the functionality of the base class in subclasses.
Define abstract base class
An abstract base class is a base class that is not intended to be instantiated, it only serves as a base class for other classes. It contains pure virtual functions (that is, functions without a function body) that must be overridden in derived classes. To declare an abstract base class, use virtual
and = 0
, for example:
class Shape { public: virtual double area() const = 0; };
Function inheritance in derived classes
A derived class can inherit the function definition of an abstract base class by using the override
keyword and providing an implementation of the function. For example:
class Circle : public Shape { public: override double area() const { return M_PI * radius * radius; } private: double radius; };
Practical case: Shape area calculation
Let us take the calculation of shape area as an example for a practical demonstration. We create a Shape abstract base class and create Circle and Rectangle derived classes to calculate the area of circles and rectangles:
#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; }
Run output:
Circle area: 78.5398 Rectangle area: 12
The above is the detailed content of Detailed explanation of C++ function inheritance: How to define and use abstract base classes?. For more information, please follow other related articles on the PHP Chinese website!