Effective C++ 改善程序与设计的55个Points

让自己 习惯C++

  1. C++为语言联邦

  2. const enum inline 替换#define

  3. 尽可能 const

  4. 确认 object 用前初始化

析构构造赋值运算

  1. C++背后的调用函数

  2. 不想 编译器自动生成,则明令禁止

  3. 为多态基类 声明 虚析构函数

  4. 别让异常 逃离析构函数

  5. 不在 构造-析构内部调用virtual函数

  6. 令 =() 返回一个 refernce to *this

  7. =() 内部处理自我赋值

  8. 赋值 勿忘每一个成分

资源管理 string

  1. 使用对象管理资源

  2. 资源管理类中,小心 copying

  3. 资源管理类中 提供对原始资源的访问

  4. 成对使用 new delete 采取相同的形式

  5. 以独立的语句将newed的对象植入 智能指针

设计与说明

  1. 接口 正确 容易 被使用

  2. 设计 如设计 type

  3. 宁愿 传const的引用 也不传值

  4. 必须返回对象时,别妄想返回 reference

  5. 将成员num 声明为 private

  6. 宁 non-menber、non-friend 代替 menber函数

  7. 若all参数需要 类型转换,则采用 non-number 函数

  8. 考虑写一个 不抛异常的 swap函数

实现

  1. 尽可能 延后变量定义式的出现时间

  2. 尽可能少 转型

  3. 避免返回ptr 对象内部成分

  4. 为异常安全努力 是值得的

  5. 了解 inline 的里外

  6. 将文件编译关系 的依赖降到最低

继承于面向对象

  1. 确定 你的public继承 出 Is-a 关系

  2. 避免遮掩继承而来的名称

  3. 区分 接口继承和实现继承

  4. 考虑 虚函数 外的实现方式

  5. 绝不从新定义 继承而来的nun-virtual 函数

  6. 绝不从定义 继承而来的 缺省参数值

  7. 通过复合模型出 has-a 或 根据某物实现出

  8. private 继承的坑

  9. 多重继承的坑

模板于泛型

  1. 隐式接口 编译器多态

  2. typename 的双意义

  3. 学习处理模板化基类内的名称

  4. 将于参数无关的代码抽离

  5. 运用成员函数模板接收书所有兼容类型

  6. 需要 类型转换 时请为 模板定义非成员函数

  7. 请 traits classes 变现类型信息

  8. 认识template 元编程

new delete

  1. 了解 new delete 的行为

  2. 了解 new 和delete 的合理替换时机

  3. 编写new-delete 需要固收常规

  4. 写了 placement new 也要placement delete

others

  1. 不要轻视 编译器的警告

  2. 让自己熟悉TR1 在内的标准库

  3. 让自己熟悉 boost 库

XMind - Trial Version

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Code-keys

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

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

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

打赏作者

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

抵扣说明:

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

余额充值