2010-12-05 3 views

答えて

9

基本クラスのコンストラクタを明示的に呼び出さないと、デフォルトのコンストラクタが自動的に呼び出されます(存在する場合、これは他のほとんどの言語で同様です)。そうでない場合は、コンパイラはエラーを発生させます)。

+1

ここでは、基本クラスのコンストラクタがパラメータ化された引数を取ります.btの派生コンストラクタがmain関数で空です。コンストラクタへの引数なしで派生オブジェクトを宣言します。何が起こるのですか?そのオブジェクトの基本コンストラクタを別々に引数に渡す方法はありますか? –

+1

いいえ、それは不可能です。あなたの派生クラスは、基本クラスのその特定のコンストラクタに引数を渡さなければなりません(基本クラスがデフォルトコンストラクタを提供しない場合)。したがって、派生クラスのコンストラクタは、渡さなければならない特定の値を "知っている"か、派生クラスはそのコンストラクタを介してそれらの引数を求めて、それらを基本クラスのコンストラクタに転送します。 – Flinsch

-1

これは絶対に不可能なので、何もありません。

+0

もちろん、できます!すでに述べたように、基本クラスがデフォルトのコンストラクタを提供する場合、明示的に基本クラスのコンストラクタを呼び出さない限り、自動的に呼び出されます。しかし、何が目的なのかを明示するだけで、コンストラクタを明示的に呼び出す方が常に良いです。 – Flinsch

+1

@Flinsch - なぜあなたができると言ったのか分からない、なぜあなたはできないのか説明しただけです。 –

+0

Can/can not what?申し訳ありませんが、私はあなたのポイントを得ていないと思います。 – Flinsch

関連する問題