C++ 编程规范笔记
2013-10-18 20:04 chjxx 阅读(204) 评论(0) 收藏 举报- 尽量在定义变量的时候初始化该变量。
- 修饰符的位置可能引起误解 int* x, y或者int *x,y
- 运算符的结合性(由右到左):~ !++ -- sizeof + - * & || :?
- 运算顺序表达不清楚的时候尽量使用括号()
- 函数的设计应该注意的事项:
- 不要省略参数的名字,不要省略返回值的类型
- 必要的时候使用const 修饰符
- 区分“值传递”和"引用传递“
- 对return 语句进行检查:a.return 不可返回“栈空间”的指针或引用,“栈空间”的变量在函数结束的时候被销毁,b.弄清楚返回的是“值”,“指针”还是“引用”,c.如果返回的是对象应该考虑效率问题。
- 当函数里含有static变量时应该特别注意“记忆状态”
- 使用assert,有助于找到错误愿意
- “引用”和“指针”的区别
- 内存管理:
- 内存分配的三种方式:a.静态存储区分配,内存在程序编译的时候就已经分配好,在整个程序运行期间都存在。如全局变量,static变量等。b. 栈空间,函数内的局部变量在栈空间上创建,函数结束时这些存储单元自动释放。c.堆空间动态内存分配,程序在运行的时候使用malloc或new来申请的内存,程序员决定什么时候释放这些内存。
- 常见的内存错误:a.内存没有分配成功却使用它,b.内存分配成功但没有初始化就引用,c.越界操作,d.忘记释放内存,造成内存泄露,e.引用释放了的内存:返回栈空间的指针或引用;free或delete之后没有把指针置为NULL,造成野指针
- 指针和数组的区别
- 指针参数是如何传递内存的
- free和delete是怎样处理指针的
- 指针消亡了不意味着它所指的内存会被自动释放
- 内存被释放不意味着指向它的指针消亡或置为NULL
- 杜绝野指针
- the big-three:
- 构造函数
- 析构函数
- 赋值函数
高质量c/c++编程指南 林锐
浙公网安备 33010602011771号