Google C++ スタイル ガイドでは、入力パラメーター (→ const ref、値) と入出力または出力パラメーター (→ 非 const ポインター)を明確に区別しています (厳密にはcpplint.pyが続きます)。
C/C++ 関数へのパラメーターは、関数への入力、関数からの出力、またはその両方です。通常、入力パラメーターは値または const 参照ですが、出力および入出力パラメーターは非 const ポインターになります。
そしてさらに :
実際、入力引数は値または const 参照であり、出力引数はポインターであるというのは、Google コードの非常に強力な規則です。
しかし、入力/出力引数 (出力引数は脇に置いておきます) を参照渡ししてはならない理由がわかりません。スタックオーバーフローには、この質問に関連するトピックがたくさんあります。たとえば、ここで、受け入れられた回答は明らかに
それは主にスタイルに関するものです
しかし、もし
nullを渡すことができるようにしたい場合は、ポインターを使用する必要があります
では、ポインターが null になるのを避けたい場合、常にポインターを要求するポイントは何ですか? 入力引数に参照のみを使用するのはなぜですか?