C++知识点总结
来源:互联网 发布:图书馆管理数据流程 编辑:程序博客网 时间:2024/05/07 07:01
1.为何使用列表初始化?
出于性能的考虑,对于内置类型区别不大,而对于类类型,在构造体内赋值首先调用默认构造函数,再进行赋值操作,而列表初始化则省略了赋值操作。
2.哪些东西必须放在初始化列表中?
①常量成员,因为常量成员只能初始化不能赋值
②引用,引用必须在定义的时候初始化,并且不能赋值
③没有默认构造函数的类类型,因为使用初始化列表可以不必调用默认构造函数来初始化,而是直接调用拷贝构造函数初始化
3.struct和class区别
唯一的区别是默认的访问区别,struct默认是public,class默认是private
4.可变数据成员
我们希望能够修改类的某个数据成员,即使是在一个const成员函数内,可以在变量声明中加入mutable关键字。
5.explicit关键字
将构造函数声明为explicit抑制构造函数的隐式转换,只对一个实参的构造函数有效,需要多个实参的构造函数不能用于执行隐式转换,所以无需将这些构造函数声明为explicit的。只能在类内声明构造函数时使用explicit关键字 ,在类外定义时不应该重复。
6.为什么静态成员函数不能声明成const?
因为static成员不是任何对象的组成部分,所以static成员不能被声明为const,毕竟将成员声明为const就是承诺不会修改该函数所属对象
7.绝对不要重新定义继承而来的non-virtual函数
如果在子类中重新定义继承而来的非虚函数,那么调用该函数的版本取决于指向该对象之指针当初声明的类型。因为非虚函数是静态绑定的,一旦被声明为指向父类的指针,那么调用的函数版本永远是父类的函数版本,同理子类。
0 0
- C语言知识点总结
- C语言知识点总结
- C/C++ 知识点总结
- C语言知识点总结
- C语言知识点总结
- c知识点总结
- C语言知识点总结
- c知识点总结
- C语言知识点总结
- Objective-C 知识点总结
- C/C++ 知识点总结
- C语言知识点总结
- c语言知识点总结
- Objective-C知识点总结
- C语言知识点总结
- c知识点总结大全
- C语言知识点总结
- 【c++】c++知识点总结
- TreeMap分析
- java关于事件的简单介绍
- 页面特效
- ocp考试
- Android录制屏幕并转为GIF
- C++知识点总结
- 【学习笔记】Super关键字
- 决策树分类与回归(一)
- rest
- 树状数组入门理解
- Java学习笔记——Oracle(上)
- 数据结构-二叉查找树
- linux环境下c++的编写、调试以及makefile多文件连编需要注意的问题
- RxJava操作符(6)-通用