函数
分类
函数类型
- 普通函数 - 如void(*)(int);
- 类函数 -
- 对象函数 - 如void(<类名> ::*)(int);
- 仿函数 -
- 匿名函数 - []{}
调用方式
- 直接调用 - 如<函数名>()
- 点语法
- 类名和方法名
内联函数
关键字:inline
含义:小型频繁调用函数;
作用:减少程序转移调用带来的时间成本;
注意:包含switch,循环(for、while)的函数编译器优化,不能为内联函数;
函数对象
参考:https://blog.youkuaiyun.com/dadan1314/article/details/80406554
匿名函数
参考:https://blog.youkuaiyun.com/dadan1314/article/details/80395180
虚函数
关键字:virtual
含义:创建虚函数表,编译器创建vptr指针来维护虚函数表;
作用:覆盖,实现多态;
注意:采用动态联编(区别于静态联编),运行期通过寻址确定要调用的函数,效率相对于静态联编要低;
变参函数
... 按照类型大小,内存逐个存储
关键字
explicit
指示函数必须显示调用,一般用于构造函数,C++11扩展到了类型转换操作符;
防止错误地隐式调用;
初始化列表也是一种隐式调用;
类
类
类结构
- 构造 - 基类构造 委托构造 继承构造 拷贝构造 移动构造
- 赋值 - 拷贝赋值 移动赋值
- 析构 -
类特征
- 封装
- 继承
- 多态 - 重载和覆盖(区别于隐藏)
关键字
- const
- final - 修饰类,表示类不能被继承;修饰虚函数,表示该方法不能被重写;
- override - 修饰类方法,表示该方法覆盖基类同名方法;