C++公有继承实例:创建派生类与代码复用

需积分: 7 0 下载量 171 浏览量 更新于2024-08-19 收藏 188KB PPT 举报
在C++编程中,公有继承是一种重要的面向对象特性,它允许我们在设计软件架构时创建新的类(派生类)以复用和扩展已存在的类(基类)的功能。公有继承意味着基类的所有公共成员(包括公有属性和方法)对派生类是可见和可访问的,这使得派生类可以直接利用基类的特性而无需重新实现。 公有继承的一个典型示例是通过给出的`Location`类。这个类具有初始化位置、移动位置以及获取坐标的方法,私有成员变量`X`和`Y`分别表示位置的二维坐标。如果有一个交通工具类系列,如汽车、卡车、小汽车、旅行车、工具车等,它们可能需要共享类似的位置信息,那么可以使用`Location`类作为基类,进行公有继承,以避免重复编写相同的坐标操作代码。例如: ```cpp class Vehicle : public Location // 公有继承Location { public: // 新增车辆特有的功能,如颜色、型号等 void SetColor(const std::string& color); std::string GetColor(); private: // 如果需要,Vehicle还可以添加自己的私有成员变量和方法 }; class Car : public Vehicle // 单一公有继承Vehicle { public: void Accelerate(); }; class Truck : public Vehicle // 多重公有继承,可能继承Vehicle和其他相关基类 { public: void LoadCargo(); }; ``` 在这个例子中,`Vehicle`类通过公有继承`Location`,不仅继承了定位功能,还能在不改变`Location`的基础上增加车辆特有的属性和行为。这种方式提高了代码的复用性和灵活性,减少了代码量,使得当需要修改或扩展位置相关的功能时,只需在基类中做更改,所有继承自它的类都会自动受益。 另外,文件中还提到了`Student`和`GraduateStudent`类,`GraduateStudent`类继承自`Student`,这是一个典型的单继承案例。`GraduateStudent`继承了`Student`的公共成员,如学号、姓名和成绩,同时增加了保护成员`advisor`以及用于设置和获取导师名字的方法。这种继承结构使得`GraduateStudent`类可以共享`Student`的基本属性,同时拥有自己的独特属性,体现了面向对象编程中的封装和继承优势。 总结来说,C++中的公有继承是一种强大工具,它促进了代码的复用、减少了冗余,有助于构建模块化的程序设计,使开发者能够根据需求灵活地扩展和定制类的行为。通过理解并熟练运用公有继承,可以大大提高软件开发的效率和代码的可维护性。