标签:const 编程 C++ 传递 参数 引用 操作符 输入 指针
目录
第25条 正确地选择通过值、(智能)指针或者引用传递参数
正确选择参数:分清输入参数、输出参数和输入/输出参数,分清值参数和引用参数。正确地传递参数。
选择如何传递参数时,应该遵循以下准则。
对于只输入(input-only)参数:
- 始终用const限制所有指向只输入参数的指针和引用;
- 优先通过值来取得原始类型(如 char、float)和复制开销比较低的值对象(如 Point、complex)的输入;
- 优先按const的引用取得其他用户定义类型的输入;
- 如果函数需要其参数的副本,则可以考虑通过值传递代替通过引用传递。这在概念上等同于通过const引用传递加上一次复制,能够帮助编译器更好地优化掉临时变量。
对于输出参数或者输入/输出参数:
- 如果参数是可选的(这样调用者可以传递null表示“不适用的”或“无需关心的”值),或者函数需要保存这个指针的副本或者操控参数的所有权,那么应该优先通过(智能)指针传递;
- 如果参数是必需的,而且函数无需保存指向参数的指针,或者无需操控其所有权,那么应该优先通过引用传递。这表明参数是必需的,而且调用者必须提供有效对象。
- 不要使用C语言风格的可变长参数(见第98条)。
标签:const,
编程,
C++,
传递,
参数,
引用,
操作符,
输入,
指针
From: https://www.cnblogs.com/yubo-guan/p/18396286