Google C++ 风格指南在输入参数(→ const ref, value)和输入输出或输出参数(→ 非 const 指针)之间做出了明确的区分(严格遵循cpplint.py):
C/C++ 函数的参数要么是函数的输入,要么是函数的输出,或者两者兼而有之。输入参数通常是值或常量引用,而输出和输入/输出参数将是非常量指针。
并进一步 :
事实上,在 Google 代码中,输入参数是值或 const 引用,而输出参数是指针,这是一个非常严格的约定。
但我无法弄清楚为什么输入/输出参数(我将输出参数放在一边)不应该通过引用传递。在stackoverflow上有很多与这个问题相关的主题:例如here,接受的答案清楚地表明
主要是关于风格
但如果
你希望能够传递空值,你必须使用一个指针
那么,如果我想避免指针为空,那么总是要求指针有什么意义呢?为什么只对输入参数使用引用?