C++ でコンストラクタの引数名をメンバ変数名と同じにする
コンストラクタで引数を受け取ってメンバ変数を初期化する場合、
struct X{ X(int _value) : value(_value){} int value; };
みたいに引数名に _
prefix/suffix をつけているコードをたまに見かけます。
しかし、実は引数名はメンバ変数名と同じでも問題なく動作します。
struct X{ X(int value) : value(value){} int value; }; X x{42}; std::cout << x.value << std::endl;
これは C++ の規格で保証されている挙動になります。
もし毎回 _
を付けるのが手間であれば _
を省いてしまっても問題ありません。
それは無駄だし醜いからやめたほうがいい。
— Ryou Ezoe (@EzoeRyou) 2017年10月14日
見解です。