Include
#include
明显是预编译命令,作用是把真正的代码段替换掉命令所在位置。#include <>
引入类库路径里的头文件,#include ""
引入的是程序目录路径里的头文件。
函数+const
返回值 函数名(参数) const
像上面这种函数后加const标识符的函数,表示它不会修改入参
运算符重载
类似java的重写toString()
形式:返回值 operator+(入参1, 入参2...)
- 这个“+”可以替换为其他运算符
- 运算符一般从左往右解析,如:
cout << a << b 等价于 (cout << a) << b
友元
定义:友元 修饰 函数,如友元函数,表示该函数可以访问这个(定义友元函数的)类的实例的私有变量
形式:friend 函数声明
只能用在函数声明中
应用
使一个自定义的类可以以如下形式输出到cout(类似java的toString):
cout << anClassObj
转换函数
转换函数的原型声明
operator typeName();
“类” 与 “基本类型”的转换
类可以定义单一参数的构造函数,来与基本类型进行转换,如:
// 类定义:
operator int() const;
// 隐式转换:
aClass a = 3;
// 等价于显式声明
aClass a = aClass(3);
如果在类的构造函数声明前加上explicit,则构造函数只能用于显式声明
// 声明为显式转换
explicit operator typeName();
变量&指针
变量是编译时分配的有名称的内存
指针主要作用于运行时,为其分配未命名的内存以存储值
// 模式1
int num = 3;
int * ptr = #
// 模式2
int * ptr = new int(3);
如上述代码,模式1 和 模式2 的本质是一样的,都是指针ptr指向了一个3,但是前者有变量名num,后者没有变量名
引用
- 赋值时它标记内容所在地址,使用时它是地址内的内容