zoukankan      html  css  js  c++  java
  • Effective C++ 条款20 宁以pass-by-reference-to-const替换pass-by-value

    1. 以reference-to-const传递参数的优点:

        避免局部对象的构造和析构,节省时间和空间;

        避免参数派生类对象向基类对象传递时的"对象切割",实现面向对象;

    2. reference虽然是"别名",但是底层实现往往是指针,因此对于内置类型,选用pass-by-value效率更高.这也适用于STL的迭代器和函数对象,因为它们习惯上都被设计为pass-by-value,但并不是对象小就要选择pass-by-value效率就高,主要有以下原因:

        对象内含指向堆内存的指针;

        某些编译器会把内置类型放入缓存器,但是却不会把只含一个内置类型的对象放入缓存器(对象的引用属于内置类型);

        用户自定义类型其内部实现可能改变(对象可能变大)

    3. 综上,使用pass-by-value传参比较合适的对象一般只有内置类型,STL的迭代器和函数对象,其他最好用pass-b0reference-to-const替换pass-by-value

        

        

        

  • 相关阅读:
    js判断undefined类型
    js replace 全部替换
    第五次作业--原型设计
    第三次作业--团队展示
    第二次作业——数独终盘
    软件工程实践2017第一次作业
    课堂作业2
    课堂作业1
    第四次作业 计算器第二步
    第三次作业
  • 原文地址:https://www.cnblogs.com/reasno/p/4757951.html
Copyright © 2011-2022 走看看