同一のコンストラクター引数とメンバー変数名の使用
質問:
は許容されますか?に示すように、コンストラクター引数と同じ名前を使用してメンバー変数を初期化します。次のコードですか?
class Blah { std::vector<int> vec; public: Blah(std::vector<int> vec): vec(vec) {} };
答え:
はい、この実践は C 標準に完全に準拠しています。標準のセクション 12.6.2/7 によれば、
Names in the expression-list of a mem-initializer are evaluated in the scope of the constructor for which the mem-initializer is specified.
これは、コンストラクターの初期化リスト内で、コンストラクターの引数と同じ名前を使用してメンバー変数を参照できることを意味します。したがって、指定したコードは合法であり、正しく動作することが保証されています。
追加情報:
以上がコンストラクターの引数とメンバー変数に同じ名前を付けることはできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。