More Effective C++ 条款32 在未来时态下发展程序

1. 所谓"在未来时态下发展程序",指的是是程序需要具有良好的可扩展性和可维护性,它要求程序:功能齐全,接口易用,代码泛化,以下原则有助于实现这一目标:

    1). 以C++本身表现各种规范而不是仅仅依赖于注释:如果某个class不打算作为基类,那么就应该以C++语法阻止派生(条款26);如果一个class要求所有对象实体在heap内产生,就以C++语法严格厉行这项约束(条款27),如果copying和assignment对某个class没有意义,就声明为private...

    2). 如果某个类可能会被派生,就将析构函数声明为virtual,如果某个函数在派生类中可能会被重定义,就把它声明为virtual.

    3). 为每一个class处理assignment和copy construction,如果这些函数不易完成,就把它们声明为private以防止编译器自行合成错误版本(条款E11).

    4). 使class的操作符核函数拥有自然的语法和直观的语义,和内置类型行为保持一致.

    5). 任何事情只要能做,就会有人做.如自我赋值,初始化前使用对象,给对象超出范围的值等.因此要使程序具有健壮性,有预防,侦测,甚至更正的能力.

    6). 尽量写可移植代码.

    7). 尽量降低代码之间的依赖性,将更改系统产生的影响降到最小:尽量采用封装性质(条款E20);尽量用匿名namespaces或文件内的static对象和static函数;尽量避免设计virtual base class,因为它的初始化需要由底层派生类完成;尽量避免使用RTTI而导致一层一层的if-else;尽量使用类声明胃不是类定义以降低文件之间的编译依赖性.

2. 当然,"现在式思维"也很重要:平台依赖,开发时间限制,性能考虑等因素都是重要的约束.但在条件允许的情况下应该使用"未来式思维"编程.

转载于:https://www.cnblogs.com/reasno/p/4875797.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值