第五周学习
来源:互联网 发布:英语语法 视频 知乎 编辑:程序博客网 时间:2024/06/07 06:57
5.1继承和派生
- 继承:在定义一个新类的时候,如果该类与某个已定义过的类相似,则可以将原来的类定义为基类,现在的定义为派生类
- 派生类是通过对基类进行修改和扩充得到的,派生类可以扩充新的成员变量和成员函数
- 派生类拥有基类所有成员函数和成员变量
class 派生类名:public 基类名{};
- 派生类在内存中储存时,最前面先是基类的对象,然后后面跟上自己的变量,成员函数等
5.2继承关系和复合关系
- 继承关系:
- 派生类一定是基类的一种
- 复合关系:
- k是类d的一个对象,类c中有k这个成员变量,则c和d是复合关系
- 不能说一个类是另外的一种
5.3基类/派生类同名成员函数和protected关键字
- 同名成员函数
class base{ int j;public: int i; void func();};class derived:public base{public: int i; void access(){ j=5;//这是基类的私有成员,不能这样赋值 i=5;//派生类的i赋值 base::i=5;//基类的i赋值 func();//调用派生类func() base::func();//调用基类的func() } void func();};derived obj;obj.i=1;//派生类自身i赋值obj.base::i=1;派生类中的基类i赋值//所以不建议再派生类中定义与基类相同名字的成员变量
- protected 关键字
- 基类private成员可被以下访问:
- 基类成员函数
- 基类友元函数
- 基类的public成员可被以下访问:
- 基类成员函数
- 基类友元函数
- 派生类成员函数
- 派生类友元函数
- 其他函数
- 基类protected成员可被以下访问:
- 基类成员函数
- 基类友元函数
- 派生类的成员函数可以访问当前对象的protected成员
class father{protected: int n;};class son:public father{void a(){ n=3;//可以访问当前对象的protected成员 a.n=5;//只能访问当前对象,这不是当前对象}};
5.4派生类构造函数
- 派生类对象包括基类对象
- 先执行基类构造函数再执行派生类构造函数,先执行派生类析构函数,再执行基类析构函数
构造函数名(形参表):基类名(基类构造函数实参表){}
class a{public: int m,n; a(int i,int j):m(i),n(j){}};class b:public a{public: int o; b(int i,int j,int k):a(i,j),o(k){}};
5.5public继承的赋值兼容规则
class base{};class derived:public base{};base b;derived d;
- 派生类的对象可以赋值给基类对象
b=d; - 派生类对象可以初始化基类的引用
base & br=d; - 派生类对象地址可以赋值给基类指针
base* p=&d;很重要,后面程序很多用到 - 只有派生方式是public的时候上诉三个才可行
- 声明派生类的时候,只需要列出它的直接基类即可
- 派生类包括所有直接基类的变量和间接基类的变量
阅读全文
0 0
- 第五周 学习目标
- 第五周学习内容
- 第五周学习内容
- 学习java第五周。
- 第五周学习
- 第五周学习内容
- 【python学习.第五周任务】
- 第五周Android学习笔记
- jsp第五周学习内容
- jsp第五周学习笔记
- 启明星第五周学习总结
- VB学习第五周--数学函数应用
- Python学习第五周:字符串 - 作业20150611
- Android第五周的学习笔记
- 吴恩达机器学习笔记_第五周
- Android学习的第五周笔记
- [Boolan] C++第五周学习笔记
- 机器学习第五周(一)
- 乱码整理
- 【上海·签约】中企动力助上海新芳国际物流布局互联网云平台
- Unity中使用Delegate和Native交互
- 微信小程序的坑之编译后界面不改变也不报错
- 一步步开发一个Web服务器.Part 1.
- 第五周学习
- 【OpenGL】多边形的镂空
- 二叉排序树的旋转平衡
- js关闭当前页面(窗口)的几种方式总结(原文:http://www.jb51.net/article/34502.htm)
- HDU 4165 Pills【卡特兰数】
- 极乐技术周报(第十六期)
- Tensorflow 实现CNN
- java数据结构与算法之双链表设计与实现
- 大数据算法:对5亿数据进行排序