提示信息

C++ 继承概述(上篇)

浮光掠影 已关注

继承是面向对象编程中的一项核心概念,允许一个类(子类)从另一个类(父类)获取属性和行为。C++中的继承可以帮助实现代码重用和更清晰的程序结构。以下是C++继承的一些基本概念和特性:

1. 基本概念

  • 基类(父类/超类): 提供基础属性和方法的类。
  • 派生类(子类): 从基类继承属性和方法的类,可以扩展或重写基类的功能。

2. 语法结构

  1. class Base {
  2. public:
  3. void baseFunction() {
  4. // 基类方法实现
  5. }
  6. };
  7. class Derived : public Base {
  8. public:
  9. void derivedFunction() {
  10. // 派生类方法实现
  11. }
  12. };

在上述例子中,Derived 类继承自 Base 类,这意味着 Derived 类可以访问 Base 类的 baseFunction 方法。

3. 继承类型

在C++中,继承类型决定了基类成员在派生类中的访问权限。有三种不同的继承方式:

  • 公共继承(public):

    • 基类的 public 成员在派生类中仍然是 public
    • 基类的 protected 成员在派生类中成为 protected
  • 保护继承(protected):

    • 基类的 publicprotected 成员在派生类中都成为 protected
  • 私有继承(private):

    • 基类的 publicprotected 成员在派生类中都成为 private
  1. class DerivedPublic : public Base {};
  2. class DerivedProtected : protected Base {};
  3. class DerivedPrivate : private Base {};

4. 重写与重载

  • 方法重写(Override): 派生类重写基类的方法以改变其行为。
  • 方法重载(Overload): 在一个类中定义多个同名函数,但参数不同。
  1. class Base {
  2. public:
  3. virtual void show() {
  4. cout << "Base show" << endl;
  5. }
  6. };
  7. class Derived : public Base {
  8. public:
  9. void show() override { // 重写基类的方法
  10. cout << "Derived show" << endl;
  11. }
  12. };

5. 构造函数与析构函数

  • 构造函数: 派生类的构造函数调用时,默认会首先调用基类的构造函数。
  • 析构函数: 派生类的析构函数调用时,会自动调用基类的析构函数。

6. 多重继承

C++支持一个类继承自多个基类,这被称为多重继承。然而,多重继承需要谨慎使用,因为它可能导致复杂性和潜在的二义性问题。

  1. class Base1 {};
  2. class Base2 {};
  3. class Derived : public Base1, public Base2 {};

以上是C++继承的一些基础概念。在实际编程中,要合理设计类结构,避免滥用继承,以保持代码的清晰性和可维护性。下篇将会讨论继承中的虚函数、抽象类等更高级的概念。

    遇到难题? "AI大模型GPT4.0、GPT" 是你的私人解答专家! 点击按钮去提问......
浮光掠影 关注 已关注

最近一次登录:2024-11-20 20:19:37   

暂时还没有签名,请关注我或评论我的文章
×
免费图表工具,画流程图、架构图