- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C++プログラミングをする上で、少々気になった点があるので質問させてく)
C++プログラミングで気になる点とは?
このQ&Aのポイント
- C++プログラミングで気になった点を質問します。
- C++のクラスやコンストラクタについての違いやメリットについて知りたいです。
- 特に、CSuperクラスのコンストラクタとサブクラスのコンストラクタの違いについて教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
違います。 CSuper :: CSuper(int a, int b) : _a(a) { _b = b; } のばあし、_a は a で初期化されます。 _b はデフォルト値で初期化され、 b が代入されます。 つまり、_b に対してはコンストラクタと代入が働きます。二度手間です。
その他の回答 (1)
- 麻野 なぎ(@AsanoNagi)
- ベストアンサー率45% (763/1670)
回答No.2
もう一点、 既に回答にあるとおり、 _a(a) は、初期化 _a = a は、代入 ですので、 たとえば、const int _a; という、const な、メンバ変数に対しては、_a(a) しか使えないというのがあります。
質問者
お礼
回答ありがとうございます。 たしかにconstは、そのような形で値を決めますね。 その記述が可能で、代入が不可能なのは、代入とコンストラクタを呼ぶ、という違いによるものだったのですね。 ありがとうございました。
お礼
回答ありがとうございます なるほど、今まで意識していませんでしたが、そういう動きだったんですね。