c++类的继承与派生的基本概念和语法
来源:互联网 发布:群智能算法应用 编辑:程序博客网 时间:2024/05/18 00:26
先简单地理解下继承以及派生的关系和概念:
类之间的继承(Inheritance)我们就理解为一个类从另一个类获取成员变量和成员函数的过程。
比如说类 M 继承于类 N,那么 M 就拥有 N 的成员变量和成员函数。被继承的类称为父类或基类,继承的类称为子类或派生类。
派生类除了拥有基类的成员,还可以定义自己的新成员,以增强类的功能。
至于使用继承与派生的原因:
总结一下就是说如果你现在要创建一个大部分功能与原有的类相同的时候,使用继承,那么首先可以减少代码量,接着你可以在使用原有类的成员函数的基础上添加或者修改自己的成员函数。
提供个代码实例:
#include<iostream>using namespace std;class People{public:void setname(char *name);void setage(int age);char *getname();int getage();private:char *m_name;int m_age;};void People::setname(char *name){m_name = name;}void People::setage(int age){m_age = age;}char* People::getname(){return m_name;}int People::getage(){return m_age;}class Student: public People{public:void setscore(float score);float getscore();private:float m_score;};void Student::setscore(float score){m_score=score;}float Student::getscore(){return m_score;}//基类是People、派生出的类是Student //也就是说基类(父类)被派生类(子类)继承。 //继承(Inheritance)可以理解为一个类从另一个类获取成员变量和成员函数的过程。 //People 是基类,Student 是派生类。Student 类继承了 People 类的成员,//同时还新增了自己的成员变量 score 和成员函数 setscore()、getscore()。//这些继承过来的成员,可以通过子类对象访问,就像自己的一样。int main(){Student stu;stu.setname("建军节");stu.setage(12);stu.setscore(96.33f);cout<<stu.getname()<<" "<<stu.getage()<<" "<<stu.getscore()<<endl;return 0;}
People 是基类,Student 是派生类。Student 类继承了 People 类的成员,同时还新增了自己的成员变量 score 和成员函数 setscore()、getscore()。
这些继承过来的成员,可以通过子类对象访问,就像自己的一样。
注意实例的代码,声明继承的代码语法如何写的:
class Student: public People{};继承的一般语法为:
class 派生类名:[继承方式] 基类名{
派生类新增加的成员
};
继承方式包括 public(公有的)、private(私有的)和 protected(受保护的),此项是可选的,如果不写,那么默认为 private。
阅读全文
0 0
- c++类的继承与派生的基本概念和语法
- 继承的基本概念和语法
- C语言类的继承和派生
- C++: 类的继承派生
- 类的继承与派生
- 类的继承与派生
- 类的继承与派生
- 类的继承与派生
- 类的继承与派生
- 类的继承与派生
- 类的派生与继承
- 类的继承与派生
- 类的继承与派生
- 类的派生与继承
- 类的继承与派生
- 058day(自增,自减运算符重载和继承与派生的基本概念)
- 类的继承与派生(Shape例子派生Rectangle和Circle,Rectangle派生出Square)
- 类的继承和派生
- Java关于多线程、并发、工具类的18道面试官必问经典面试题
- 关于PLsqldevelop的安装
- TeamTalk源码分析(五) —— 服务器端msg_server源码分析
- App横竖屏切换的问题怎么解决
- iOS Xcode 8 快捷键 (注释 失效 处理)
- c++类的继承与派生的基本概念和语法
- Altium小技巧之如何批量添加器件封装
- 分享】读取properties配置文件的方法汇总
- Ubuntu下Vue.js+webpack的安装(nodejs版本纠正)
- 面试题目汇总(JAVA算法/数据结构)
- Oracle RAW类型基本操作函数及使用示例
- Echarts之地图自定义lable文本标签&去掉小点
- Centos7安装并配置mysql5.6完美教程
- node与javascriptAES加密