在C++中的继承和派生 分别举例 说明区别与联系
时间: 2024-10-13 13:04:35 浏览: 26
在C++中,继承和派生是构建复杂类结构的基础,它们的主要区别和联系如下:
### 继承(Inheritance)
**例子:**
```cpp
class Shape { // 父类或基类
public:
virtual void draw() { /* 默认绘制形状 */ }
};
class Circle : public Shape { // 子类或派生类
public:
void draw() override { // 重写父类的draw方法
cout << "Drawing a circle.\n";
}
};
```
**区别与联系:**
- **区别**:Circle类继承自Shape类,意味着它自动获得了Shape类的所有公共成员(包括公有属性和方法)。`public`关键字表示继承的方式,`protected`或`private`可以选择更严格的访问控制。
- **联系**:子类能重写(override)或扩展父类的方法,如上述的`draw()`。此外,还可以使用`virtual`关键字提供虚函数,实现动态绑定,提高代码的灵活性。
### 派生(Derivation)
**区别与联系**:
- **区别**:派生概念在C++中与继承一致,如上例所示,无需额外解释。
- **联系**:派生类是对基类功能的扩展,可以看作是基类的一种实例化,因此派生类的对象可以被视为基类的对象使用,直到调用特定于派生类的方法。
总结来说,继承与派生是面向对象设计的核心,它们都实现了代码复用,并允许通过子类增加或改变功能。继承强调的是共享属性和方法,而派生则是这个共享基础上的具体实现。
阅读全文