- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:デフォルトコンストラクタについて)
デフォルトコンストラクタについて
このQ&Aのポイント
- クラスB側で何か細工をすると、クラスAのデフォルトコンストラクタ無しで、エラーなくコンパイルできるのでしょうか?
- 派生クラスの親のベースクラスのコンストラクタを呼ぶsuper?でOKなのでしょうか?
- クラスAのデフォルトコンストラクタをコメントアウトすると、コンパイルエラーが発生します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
B のデフォルトコンストラクタはそのままでは、まず A のデフォルトコンストラクタを呼びにいくからこのままでは NG。 class B : A { public: B() : A(0) {} } のように明示的に A のコンストラクタを指定すればよい。 super って Java の予約語だっけ?
その他の回答 (1)
- koko_u_
- ベストアンサー率18% (459/2509)
回答No.2
>Aクラス側で A(){}とせずに、 >A(){ A(0) }は可能でしょうか? A() { A(0); } ならできますが、意味はありません。 単に A 型のオブジェクト A(0) を一時的に作成して捨てているだけです。 まずは普通にコードが書けるようになるのが先でしょう。
お礼
Bクラス側の場合は理解しました。 Aクラス側で A(){}とせずに、 A(){ A(0) }は可能でしょうか? >super って Java の予約語だっけ? 親(ベース)のクラスのコンストラクタを呼びたかったのですが、 頭の中が整理できていませんでした。