MyC++基础知识补漏
来源:互联网 发布:淘宝指数数据分析 编辑:程序博客网 时间:2024/05/22 14:54
一、继承部分:
1、继承只能静态的拷贝基类。(基类new产生的空间无法被派生类继承)。
2、public继承所得基类的变量和函数性质不变;
protected继承所得.....会将原基类public......变为protected性质;
private继承所得......会将原基类所有性质......变为private性质。
3、虚基类作用:防止重复继承。(避免代码重复)。
如:人<--研究生<--在职研究生,人<--在职人员<--在职研究生,此时会发生人这个基类被重复拷贝2次(代码重复)。此时仅需将人基类设为虚基类。
4、派生类构造函数生成顺序:先生成基类构造函数,再生成成员函数,最后生成自身;
析构函数销毁顺序:与构造函数相反。
5、派生类含参构造函数定义时需要先定义基类含参构造函数(且保证二者参数可兼容)。
tip:若所含参数为缺省值(给定所含参数默认值即初值),则相当于无参;
仅初始化父基类,不初始化爷基类(例外:当爷基类为虚基类时,也需要初始化)。
6、初始化列表(可提高性能):
(1)所有static成员变量在类外初始化(不管它是const,是引用,还是没默认构造函数的对象);
(2) 普通成员变量,是const,是引用,是没默认构造函数的,必须在初始化列表初始化;
(3) 普通成员变量,需要复杂运算的初始化变量,应该在构造函数内初始化,否则尽量在初始化列表中初始化。
tip:成员是按照其在类中出现的顺序初始化的,而不是按照其在初始化列表中出现的位置初始化。
具体初始化列表如该链接:点击打开链接
7、继承所得基类的变量和函数与自己的......不在同一块区域。
tip:派生类和基类包含同名的成员变量时,调用基类函数显示同名成员变量时,使用基类的成员函点击打开链接数。
具体验证如该链接:点击打开链接
8、多继承会带来二义性,采用作用域来解决。(因JAVA中无作用域概念,故无多继承)
具体(略有出入,思想想通)实现如该链接:点击打开链接
***其他:
1、private、protected不能在类外部调用,只能在类的内部调用(如在类的public函数中调用)。
2、重载和覆盖的区别:重写=覆盖(基类和派生类中,参数相同),重载(在同一类中,参数不同)
3、友元是C++相比纯面向对象(如C++)的一个“缺陷”。(使得private限制等成为摆设,安全性降低,如此设计纯粹是为了提高效率)
具体叙述如该链接:点击打开链接
4、头文件中的 #ifndef/#define/#endif 防止该头文件被重复引用。
具体叙述如该链接:点击打开链接
5、this指针保存当前对象地址。
具体验证如该链接:点击打开链接
6、断言:assert(expression1),如果expression1为true则执行后面的语句。如果为false则,报错并终止执行后面的程序。(用来判断程序中数据是否有“非法”的错误)
具体阐释如该链接:点击打开链接
- MyC++基础知识补漏
- 基础知识补漏-数据字典
- 基础知识补漏-内存管理
- 基础知识补漏-redo
- 基础知识补漏-undo
- 基础知识补漏-数据库的启动和关闭
- 基础知识补漏-控制文件和引导
- 基础知识补漏-参数及参数文件
- 【补漏】
- 密码学基础知识(十)查缺补漏(缺)
- MyC++(1)
- MyC++之浅谈堆栈
- MyC++之友元
- MyC++之顺序容器
- MyC语言练习
- 基础补漏!!!!!
- 加密补漏
- 识补漏
- SVM支持向量机Tensorflow实现
- JS中函数名后面的括号加与不加的区别
- Android原生登录同步到webview的网页
- theano与keras安装问题
- Python3,在Django中使用easyui
- MyC++基础知识补漏
- MIT 6.824 lab2 启动流程以及raft算法实现
- WCF 一步一步 发布 WCF服务 到 IIS (图)
- OAuth 2.0 ——授权码模式
- Android Studio 编写系统APP
- hdoj 1051 Wooden Sticks
- vue mock json 数据(模拟后台数据)
- Spring的IOC容器第一辑
- runtime实际应用(2)- 快速上手一个项目