2010年11月29日

《C++编程规范》学习笔记(4)编程风格

摘要: 第14条 宁要编译时和连接时错误,也不要运行时错误能在编译时做的事情,就不要推迟到运行时。运行时的检查取决于控制流和数据的具体情况,很难知道检查是否彻底。 静态检查与数据和控制流无关静态表示的模型更加可靠静态检查不会带来运行时开销。编译时多态。定义泛型函数或类型时,考虑用编译时多态(模板)代替运行时多态(虚拟函数)。前者产生的代码能够更好地进行静态检查。(item 64)。枚举。在表示符号常量或受限整数时考虑定义enum向下强制。 如果经常使用dynamic_cast(或者更糟糕的static_cast),则可能说明基类提供的功能太少了。对于非得运行时检查的情况,应使用断言来检查内部编程错误( 阅读全文

posted @ 2010-11-29 20:53 一颗麦粒 阅读(187) 评论(0) 推荐(0) 编辑

《C++编程规范》学习笔记(3)

摘要: 第12条 懂得何时和如何进行并发性编程如果应用程序使用了多线程或进程,要知道如何尽量减少共享对象,以及如何安全地共享必须共享的对象。参考目标平台的文档,了解该平台的同步化原语。最好将平台的原语用自己设计 的抽象包装起来,方便移植确保正在使用的类型在多线程程序中使用时安全的 在自己编写可用于多线程程序的类型时,必须完成2个任务:必须确保不同线程能够不加锁地使用该类型的不同对象。其次,必须在文档中说明使用者在不同线程中使用该类型的同一个对象需要做什么,基本的设计问题是如何在类以及其客户之间分配正确执行的职责。主要的选择有外部加锁:调用者负责加锁。内部加锁:每个对象将所有对自己的访问串行化,通常采用 阅读全文

posted @ 2010-11-29 20:08 一颗麦粒 阅读(232) 评论(0) 推荐(0) 编辑

导航