C++编程:继承基础与示例

需积分: 9 2 下载量 117 浏览量 更新于2024-07-19 收藏 1.06MB PDF 举报
"C++教程中的继承概念,包括子类继承父类的机制,成员的划分,以及覆盖或重写父类函数的规则。" 在C++编程语言中,继承是一种核心特性,它允许创建一个新类(派生类或子类)基于已存在的类(基类或父类)。这个过程使得代码的重用和类的组织更加有效。标题"(8)继承1"指出了这是关于C++继承系列讲座的第一个部分。 1. **继承的概念** 类A可以继承类B,此时类B被称为基类或父类,而类A则成为派生类或子类。这种关系意味着子类获取了父类的所有非私有成员(不包括构造函数、析构函数和赋值运算符重载)。 2. **成员的继承与划分** 子类继承的成员分为两部分:一部分是继承自父类的成员(base part),包括公有和保护成员;另一部分是子类自己新增的成员(appendent part),这部分是子类特有的。 3. **私有成员的访问** 虽然私有成员在继承过程中被子类继承,但子类仍然不能直接访问这些私有成员。子类可以通过父类提供的公共接口(公有成员函数)间接访问这些私有成员。 4. **函数覆盖或重写** 子类可以定义与父类相同名称和参数列表的成员函数,这被称为覆盖或重写。重写的目的是在子类中提供不同的实现,或者扩展父类的功能。 5. **调用父类的成员** 当需要在子类中调用被覆盖的父类函数时,可以使用作用域解析运算符`::`,例如`Base::function()`来明确指定调用父类的版本。这在需要使用父类原有功能时非常有用。 示例代码展示了如何声明和使用继承的类。`Base`是基类,具有一个私有成员`b_number`和两个公共成员函数:`get_number()`和`print()`。`Derived`是子类,继承了`Base`并添加了自己的私有成员`d_number`。子类`Derived`也定义了一个`print()`函数,覆盖了父类的`print()`。在`Derived`的`print()`函数中,通过调用`get_number()`间接访问了父类的私有成员。 通过理解和掌握继承这一概念,开发者可以构建更复杂、层次分明的类结构,有效地复用代码,并实现多态性,这是面向对象编程中的关键原则。在实际开发中,继承常用于表示“is-a”关系,如“汽车是一个交通工具”,在这种情况下,`Car`类可以从`Vehicle`类继承。
2012-04-17 上传