📅  最后修改于: 2023-12-03 14:56:56.577000             🧑  作者: Mango
继承是 C++ 面向对象编程中的重要概念之一。通过继承,一个类可以从另一个类继承属性和方法。被继承的类称为父类或基类,继承的类称为子类或派生类。
class 基类名
{
public:
// 基类的公有函数和变量
protected:
// 基类的保护函数和变量
private:
// 基类的私有函数和变量
};
class 派生类名 : 访问权限 基类名
{
public:
// 派生类的公有函数和变量
protected:
// 派生类的保护函数和变量
private:
// 派生类的私有函数和变量
};
通过 :
将访问权限与基类名连接起来,从而形成派生类。
访问权限有 public
、protected
和 private
三种,分别表示派生类对基类成员的访问权限。其中,public
表示公有继承,protected
表示保护继承,private
表示私有继承。默认情况下,继承是私有的。
以下示例展示了派生类如何继承基类的属性和方法。
#include <iostream>
class Shape
{
protected:
int width;
int height;
public:
Shape(int w = 0, int h = 0) : width(w), height(h) {}
virtual int area() { return 0; }
};
class Rectangle : public Shape
{
public:
Rectangle(int w = 0, int h = 0) : Shape(w, h) {}
virtual int area() { return width * height; }
};
int main()
{
Rectangle rect(5, 10);
std::cout << "Area of the rectangle is: " << rect.area() << std::endl;
return 0;
}
输出结果为:
Area of the rectangle is: 50
在上面的示例中,基类 Shape
包含了 width
和 height
两个属性,以及 area()
方法(虚方法,它将在派生类中被重写)。派生类 Rectangle
继承了基类 Shape
,同时增加了 area()
方法的实现。
在 main()
函数中实例化了一个 Rectangle
对象,并输出其面积。
继承是一种重要的编程概念,它允许派生类继承基类的属性和方法,并且可以通过重载方法来实现多态。
在 C++ 中,继承语法如下:
class 派生类名 : 访问权限 基类名
{
public/protected/private:
// 成员定义
};
其中,访问权限有 public
、protected
和 private
三种。
在实现继承时,关键是定义好基类和派生类之间的关系。合理使用继承能够提高代码的复用性和可维护性。