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

    

    

    

相关文章:

  • 2021-06-17
  • 2021-06-13
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-07
  • 2022-12-23
  • 2021-07-09
猜你喜欢
  • 2021-05-31
  • 2022-12-23
  • 2021-08-23
  • 2022-12-23
  • 2021-04-07
  • 2022-01-08
  • 2021-06-21
相关资源
相似解决方案