📅  最后修改于: 2023-12-03 14:59:36.895000             🧑  作者: Mango
在面向对象编程中,继承允许我们基于现有的类来创建新的类。新的类称为派生类,而现有的类称为基类。派生类继承了基类的成员和方法,并可以添加自己的成员和方法。在C++中继承是通过“冒号”来实现的,如下所示:
class Derived_class_name : access_mode Base_class_name
这里,“Derived_class_name”是新类的名字,“access_mode”指定了成员的访问级别,“Base_class_name”是现有类的名字。访问级别可以是public、protected或private,它们定义了派生类成员访问基类成员的方式。这里有一些关于访问级别的规则:
以下是一个简单的示例,使用继承创建了一个新类:
// Base class
class Shape {
public:
void setWidth(int w) {
width = w;
}
void setHeight(int h) {
height = h;
}
protected:
int width;
int height;
};
// Derived class
class Rectangle: public Shape {
public:
int getArea() {
return (width * height);
}
};
在这个示例中,派生类Rectangle
继承了基类Shape
的成员和方法,并添加了一个新方法getArea()
。getArea()
方法使用了基类成员width
和height
来计算矩形的面积。注意,setWidth()
和setHeight()
方法是基类的公共成员,而width
和height
是基类的受保护成员。派生类Rectangle
可以访问它们,因为它们都是保护级别。
现在我们可以创建Rectangle
类的对象,并调用它的方法:
Rectangle Rect;
Rect.setWidth(5);
Rect.setHeight(7);
int area = Rect.getArea();
这将创建一个Rect
对象,宽度为5
,高度为7
,然后调用getArea()
方法来计算面积。getArea()
方法使用了继承自基类的width
和height
成员,然后返回计算出的面积。
继承是面向对象编程的核心之一,它使代码更加模块化和可维护。在使用继承时,请记得谨慎考虑访问级别和派生类的设计,以避免意外的问题。