c++犯过的错
2016-03-22 20:05
239 查看
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、把一行过长的代码切割成多行,方便查错
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、把一行过长的代码切割成多行,方便查错
相关文章推荐
- C++高层抽象之虚函数
- C指针总结
- 使用VC++绘制坐标系
- C语言学习第一天
- 用C++实现在键盘上输入任意个数
- 使用C语言写PostgreSQL函数
- 局域网象棋游戏(C++实现,使用Socket,界面使用Win32,CodeBlocks+GCC编译)
- 树形动规--没有上司的舞会--C++
- kruskal --- c++ (2)
- kruskal --- C++
- c++学习之:根据GetLastError()返回值获取错误信息
- C++类的继承
- 函数的重载定义及应用
- C++的封装(程序的模块化)
- C++的类
- 使用C语言编写基于TCP协议的Socket通讯程序实例分享
- c++程序调用被C编译器编译后的函数为什么要加extern "C"
- C语言getch(),getchar(),getche()区别实例
- C语言查找字符串在文件中的第几行第几列
- C++学习笔记1——静态成员