C++私有继承实例:派生Rectangle类与Shape概念

需积分: 7 0 下载量 146 浏览量 更新于2024-08-19 收藏 188KB PPT 举报
在C++编程中,私有继承是一种特殊形式的继承方式,它允许派生类(子类)继承基类(父类)的成员,但这些继承的成员在子类中是私有的,即不能直接从外部访问。私有继承通常用于实现信息隐藏和控制代码的封装,确保基类的细节不会被随意修改,从而维护系统的稳定性和安全性。 标题提到的“私有继承举例 - C++继承”涉及了C++中的继承机制,这是面向对象编程(OOP)中的一个重要概念。在C++中,继承允许一个类(子类)从另一个类(基类)获取属性和行为,以避免重复编写代码。在这个例子中,`Rectangle` 类作为派生类,通过`private`关键字私有继承了`Location` 类。这意味着`Rectangle`类可以访问`Location`类的所有成员,但这些成员对`Rectangle`类的外部是不可见的。 基类`Location`可能包含了位置信息(如`X`和`Y`坐标),而`Rectangle`类在其基础上增加了自己的特性,如宽度`W`和高度`H`。方法`InitR()`、`Move()`、`GetX()`、`GetY()`、`GetH()`和`GetW()`可能是用来初始化、移动矩形位置以及获取其尺寸的方法。由于它们被声明为`public`,所以它们可以被`Rectangle`类的对象直接调用。 在描述中,还提到了C++继承的两种类型:单继承和多继承。单继承意味着一个派生类仅从一个基类继承,例如`GraduateStudent`类继承自`Student`类,而多继承则是指一个派生类可以同时从多个基类继承。这有助于实现功能的组合和扩展,如`GraduateStudent`类除了基本的学生属性外,还有额外的`advisor`字段和设置/获取顾问姓名的方法。 在`Student`类和`GraduateStudent`类的例子中,`Student`类的部分成员(如`number`、`name`和`score`)可能是公共的,允许外部直接访问和修改,而`GraduateStudent`类在其基础上添加了保护成员`advisor`,并提供了`SetAdvisor()`和`GetAdvisor()`方法来管理和获取顾问信息,这体现了继承时如何根据需求选择合适访问权限的策略。 总结来说,私有继承是C++继承的一种形式,它强调了封装和信息隐藏,使派生类能够安全地利用基类的功能,同时保持代码结构清晰。通过理解并熟练运用单继承和多继承,程序员可以创建更加灵活和模块化的代码结构,提高程序的可维护性和复用性。