2019.3.21C++学习笔记(1)

整理笔记

下载了很多资料但总是没有时间看,于是想用博客的形式督促自己学习。内容来源于网络、老师所给材料以及自己的总结。

代码规范

问题编号存在问题解决方案
1在程序中直接使用数字,未定义为常量利用const定义常量
2变量名、函数名没有意义,或过短,或过于通用做到见名知义
3无缩进,缩进不当,排版混乱使用正确的缩进
4左大括号风格不一致,有些另起一行,有些放上一行行尾保持一致的风格
5函数返回引用时,返回了局部变量绝不应该返回局部变量,必要时返回全局或静态变量
6没有进行有效性检查对输入数据均应该进行有效性检查
7指针赋值为0C++98NULL C++11后 nullptr
8分支和循环体只有一条语句时不加大括号无论有几条语句,都要加大括号

代码质量

  • 编译问题:数组
    //长度最好是常数/常量
    //不能确定长度时改为动态内存
int  *p = new int array[a];
  • 代码编译通过,逻辑上存在问题/内存管理出问题
    1.重点关注边界值的处理
    2.数组越界/new和delete没有成对
    //对未被初始化的指针进行delete
    //对没有指向new出的内存的指针进行delete
    //对一块已经delete过的内存再次delete
    //new 对应 delete;new [] 对应 delete []

  • 编译通过,逻辑正确,但是性能低下。
    //大对象传递时不使用引用或指针
    //无意义的多次内存复制

  • 代码可理解性、可维护性差
    //缩进统一
    //变量名、函数名、类名命名要规范(驼峰式命名)
    //注释的书写
    //单句代码段外加{}(比如if,else分支/for,while循环)
    //数字常数要设置为常量
    //可以加const的地方尽量加上const(防御性编程)

  • DRY–Don’t Repeat Yourself
    //遏制自己ctrl-c ctrl-v的冲动!
    //如果一段代码,可能被用在二处以上的地方,提取出来做成函数。
    //如果一段代码太长,分解成多个函数,赋以有意义的函数名。
    //多思考:这段代码能不能被复用。
    //不断重构代码,提高代码质量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vanessa Ni

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值