C 通过参考传递
C++ passing by reference
本文关键字:参考 更新时间:2023-10-16
如果要将一个大对象传递给函数,例如包含大数组的类,那么通过参考传递总是更好吗?这个想法是构建功能:
template<class T> double foo(T& t){...}
第一篇文章之后的增加:如果我希望该函数不修改,我将使用const参考。
然后,我可以通过将对象传递到它来调用函数:
T large_data = T(1000000);
f(large_data);
这是通过参考将对象传递到函数的基本思想(使用const
用于不变的对象):您不想传递基础(大量)数据,而您不想传递不想要指针的混乱(内存管理问题,->
和DEREFERCE)。
通常在每种自定义类型的C 中最好通过参考或指针传递。否则,除了性能外,如果您的对象需要自定义复制构造函数(并且您可能没有实现它,但是生成的编译器只能进行浅副本)。另外,切片可能会发生,等等...
相关文章:
- C++错误消息*成员参考.**初学者*
- 在决定是通过参考还是通过价值时,尺寸真的是一个问题吗
- 参考资源文件VC++中的$(SolutionDir)
- C++:Application.cpp中抛出了未解析的外部符号(解决方案在问题的末尾,供未来的读者参考)
- 为什么在运算符重载时需要参考?
- 使 \page 和 \subpage 参考 doxygen 中的方法文档
- std::shared_ptr 自定义参考计数器
- 英特尔 TBB 程序不会终止,可能会误用参考计数器
- 避免在基于反向范围的for循环实现中悬挂参考
- 通用参考 l 值不复制对象
- 标准::enable_if和通用参考的使用差异
- 标准::积累参考?
- C++丢失了参考
- 我可以有一个 ELI5 作为参考和指针以及何时使用它们吗?
- 矢量的通用参考
- 为什么"fun(i)"被推导出为"fun<int&>"而不是"fun<int>",因为"i"是"int"的类型而不是参考?
- C++17 和静态临时生存期的参考扩展
- C++ 参考:这两个语句有什么区别?
- 如何理解 C++17 标准参考中的 [intro.object]/3? N4659 的
- 是否有必要使用 std::move?这不是已经是一个右值参考了吗?