【C++ 进阶】继承(上):解锁代码复用的核心密码,体会代码复用的魅力!
、继承的概念及定义1.1继承的概念继承是面向对象编程OOP中的核心机制之一允许一个类子类/派生类基于另一个类父类/基类来构建。子类自动获得父类的属性和方法并可扩展或修改这些功能。继承呈现了⾯向对象程序设计的层次结构体现了由简单到复杂的认知过程。以前我们触的函数层次的复⽤继承是类设计层次的复⽤。举个例子代码语言javascriptAI代码解释class Student { public : // 身份验证 void identity() {} // 学习 void study() { cout _name 正在学习 endl; } protected: string _name 张三; // 姓名 string _address; // 地址 string _tel; // 电话 int _age 18; // 年龄 int _stuid; // 学号 }; class Teacher { public : // 省份验证 void identity() {} // 授课 void teaching() { cout _name :正在授课 endl; } protected: string _name 李四; // 姓名 int _age 25; // 年龄 string _address; // 地址 string _tel; // 电话 string _title; // 职称 };通过比较教师类和学生类可以发现它们具有多个相同的特性共有成员变量姓名、年龄、电话、地址共有成员函数而它们的独有特性分别是教师类职称成员变量、授课成员函数学生类学号成员变量、学习成员函数既然存在这些共性我们可以将共有属性提取到一个基类中然后让教师类和学生类通过继承来复用这些属性。1.2继承的定义下面我们就来定义一个基类然后让教师类和学生类来复用这些属性代码语言javascriptAI代码解释//定义一个person类定义共同特性 class Person { public: //身份验证 void identity() { cout void identity() _name endl; } protected: string _name 张三; // 姓名 string _address; // 地址 string _tel; // 电话 int _age; // 年龄 }; //定义一个student类继承person类 class Student : public Person { public: void print() { _name 李四; _age 18; cout 姓名: _name endl; cout 学号: _stuid endl; } // 学习 void study() { cout _name :正在学习 endl; } protected: int _stuid241610101; // 学号 }; //定义一个teacher类继承person类 class Teacher : public Person { public: void print() { _name 王五; _age 25; cout 姓名: _name endl; cout 职称: _title endl; } // 授课 void teaching() { cout _name 正在授课中 endl; } protected: string _title老师; // 职称 }; int main() { Student s; s.print(); s.study(); Teacher t; t.print(); t.teaching(); return 0; }这里是引用我们看到student类和teacher类的姓名都继承至person类学号职称还有学习和授课(成员函数)是自身特有的这样就实现了代码的复用。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2585717.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!