1、可访问性(是否可用)、可见性(作用域内是否存在)
2、volatile(嵌入式用的多) const
3、友元函数可以访问类的私有函数 目的 工厂方法 全局运算符 如 >> << () ||
4、static const 类定义时即可初始化
5、复制构造函数 赋值运算符 目地 复杂类型、指针类型的复制
6、转换构造函数 一个参数的构造函数
7、explicit 防止隐式类型
8、 const 在函数前则返回值是const的,在函数后,则函数里的值不可变,如果有修改变量,可以在这个变量的声明出加mutable。
9、命名规范
空行 {} 就近原则
分号后可以加空格 二元操作符的空格 前后都加,一元操作符可以不用
拆行时 操作符放在行首 *、&紧靠变量名
10、c++ 用new分配的在堆,其它的在栈
11、c++ 宏用”#”号连接
12、++在后面时返回原时值,循环的表达式里有取余,或类似操作时要注意
13、取余要注意负数问题
14、左值是一个位置,右值是一个值
15、有符号数的右移位 不是可移植的
16、变量名与内存位置之间的关联并不是硬件提供,由编译器实现。硬件仍然通过地址访问内存位置
17、c语言只有传值方式,所以要用指针的指针
18、指针的初始化用&操作符,变量的值就是分配给变量的内存位置所存储的数值
19、访问指针地址所指内容 可以间接访问,或用解引用指针 *
20、segmentation violateion / memory falut 指针未初始化 gpf 一般保护性异常 bus error 总线错误 指针超边界
21、访问内存地址 *(int *)100 = 25 内存100地址处的值设为25
22、状态码和错误码分开
23、逻辑上可以处理的异常用错误码,否则抛出异常
24、初始化的先后顺序
25、stl set 一般用来保存不可变的元素,在vs2010以上版本里 set的iterator都是const的
26、某个数x的后i位 x%(10^i)
27、链式调用时要检查每一项的值是否存在
28、function argument expected 可能是函数名后没见()
29、无符号数减始终是无符号数,用a-b>0 来判断始终为真
30、malformer number near 非英文字符
31、unexpected symbol near “=” 结果是a=b后面一大段空白之后又跟着一个 =b
32、把一行过长的代码切割成多行,方便查错