• 代码优化—From <effective C++>


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

    不止应该延后变量的定义,直到非得使用该变量的前一刻为止,甚至应该尝试延后这份定义直到能够给它初值实参为止。

    如果这样不仅能够避免构造和析构非必要对象,还可以避免无意义的default构造行为。

    2.尽量少做转型动作

     尽量避免使用转型,特别是在注重效率的代码中避免Dynamic_casts。

    如果转型是必要的,试着将它隐藏于某个函数背后。

    尽可能使用新型转型(C++style)。

    3.避免返回handle指向对象内部成分

    避免返回handle(包括references、指针、迭代器)指向对象内部。

    绝对不该令成员函数返回一个指针指向“访问级别较低”的成员函数。如果这么做了,后者的实际访问级别就会提高如同前者。

    4.异常安全函数

    带有异常安全性的函数会:不泄露任何资源、不允许数据败坏。

    不泄露任何资源:以对象管理资源

    不允许数据败坏:三种安全异常函数:基本承诺、强烈保证、不抛掷保证。

    强烈保证往往能够以copy-and-swap 实现出来,但是强烈保证并非对所有函数都可实现或具备现实意义。

    5.使用inlining

    将大多数inlining限制在小型、被频繁调用的函数身上,这可使日后的调试过程和二进制升级更容易,也是潜在的代码膨胀问题最小化,使程序的速度提升机会最大化。

    不要只因为function template出现在头文件中,就将他们声明为inline.

    6.将接口从实现中分离

    如果使用object references 或 object pointer 可以完成任务,就不要使用object;

    如果能够,尽量以class声明式替代class定义式;

    为声明式和定义式提供不同的头文件。

  • 相关阅读:
    从属性赋值到MVVM模式详解
    C#综合揭秘——细说事务
    Action与Trigger
    C#综合揭秘——细说多线程(下)
    继承BitmapSource并使用独立存储来缓存远程的图片
    Windows Phone 7 MVVM模式数据绑定和传递参数
    Lambda表达式总结
    Windows Phone页面导航和独立存储开发总结
    RegisterHotKey设置系统级热键《转》
    隐藏统计代码或者任何不想被看见的东西《转》
  • 原文地址:https://www.cnblogs.com/qiushuixiaozhanshi/p/5711524.html
Copyright © 2020-2023  润新知