【C++程序设计第7课--继承】

张开发
2026/4/15 11:27:04 15 分钟阅读

分享文章

【C++程序设计第7课--继承】
引言本文为C++编程学习者引入继承的概念,通过示例代码的形式展现,希望能帮大家降低入门门槛。内容为个人学习经验总结,本章内容较多,如有疏漏,感谢指正。一、继承的概念类的继承:一个新的类从已有类那里获得已有特性的现象。类的派生:在已有类(父类)上建立一个新的类的现象。父类:基类,已有的类子类:派生类,新的类兄弟类:同一个父类的多个子类。最远派生类:最远的子类。本质:将父类的内容拷贝了一份到子类空间。注意:派生类继承了 基类所有的数据成员 和 成员函数(构造、析构除外)派生一个子类的语法:class 子类名 : 权限限定符 父类名1, 权限限定符 父类名2, …{类体};继承时的权限隐式向上转换子类指针可以转换成基类指针(多态涉及)继承与组合继承 – is-a 关系:大学生是学生 、虎宝猫是猫组合 – has-a关系:汽车有发动机、变速器、轮子二、公有继承 public_inherit公有继承时,派生类对象只能访问基类 公有成员,派生类内部只能访问基类 公有、保护成员。示例代码#includeiostreamusingnamespacestd;classBase{public:floatmoney=12;protected:floatgetMoney(){cout__func__endl;returnmoney;}private:inteyes=2;};// 从 base 类派生出子类 Subclass,或者是 定义类Subclass 继承于 Base类classSubclass:publicBase{//公有继承public:voidtest(){coutmoneyendl;coutgetMoney()endl;// cout eyes endl; //错误,私有的成员不能被访问}};intmain(){Subclass sub;//定义派生类对象coutsub.moneyendl;// cout sub.getMoney() endl; //错误,getMoney是受保护的// cout eyes endl; //错误,eyes为私有的}三、保护继承 protected_inherit保护继承时,派生类对象不能访问基类 任何成员,派生类内部只能访问基类 公有、保护成员。保护继承时,基类 public权限变成 protected权限。示例代码#includeiostreamusingnamespacestd;classBase{public:floatmoney=12;protected:floatgetMoney(){cout__func__endl;returnmoney;}private:inteyes=2;};classSubclass:protectedBase{//保护继承public:voidtest(){coutmoneyendl;coutgetMoney()endl;// cout eyes endl; //错误,私有的成员不能被访问}};intmain(){Subclass sub;// cout sub.money endl;// cout sub.getMoney() endl; //错误,getMoney是受保护的// cout eyes endl; //错误,eyes为私有的}四、私有继承 private_inherit私有继承时,派生类对象不能访问基类 任何成员,派生类内部只能访问基类 公有、保护成员。私有继承时,基类 public、protected 权限变成 private权限。示例代码#includeiostreamusingnamespacestd;classBase{public:floatmoney=12;protected:floatgetMoney(){cout__func__endl;returnmoney;}intgetEyes(){

更多文章