C++のコンストラクタに渡す仮引数の命名について教えてください。またがガイドラインがあれば教えて頂きたいです。
教えて頂きたいこと:
-
メンバイニシャライザ(初期化子リスト)だと、コンストラクタの仮引数名がメンバ変数と同一でも問題なく初期化できいる?
-
メンバイニシャライザを使わないと、コンストラクタの仮引数名がメンバ変数と同一だと正常に初期化できない?
-
コンストラクタの仮引数の命名方法について常識やガイドラインはあるでしょうか?
多くのサイトは同名でなく、プレフィックスやサフィックスとしてアンダーバーを付けたり、文字を短縮したりとしていました。一方で、同名で行けるんだから手間を省くために同名が効率的という意見もありました。
ご教授お願いします。
class Test { int a; int b; public: /* イニシャライザ不使用 */ //--- Constractor type1--- 初期化問題なし Test(int _a, int _b) { a = _a; b = _b; } //--- Constractor type2 --- 初期化問題あり★ Test(int a, int b) { a = a; b = b; } /* イニシャライザ使用 */ //--- Constractor type3 --- 初期化問題なし Test(int _a, int _b): a(_a), b(_b) {} //--- Constractor type4 --- 初期化問題なし(type2では問題あり) Test(int a, int b): a(a), b(b) {} };

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/01 14:06