2

基本クラスと派生クラスがあります。基本クラスには、次の 2 つのコンストラクターがあります。

    class A
{
    public A()
    {
        Console.WriteLine("I AM BASE class");
    }

    public A(int x)
    {
        Console.WriteLine("base : parameter 1");
    }
}

class B : A
{
    public B()
    {
        Console.WriteLine("I AM DERIVED class");
    }
}

class Program
{
    static void Main(string[] args)
    {
        B b = new B();
        Console.ReadKey();
    }
}

出力はI AM BASE CLASSI AM DERIVED CLASS です。私の要件は、B がインスタンス化されるときに、デフォルトのコンストラクターの代わりに基本クラスのパラメーター化されたコンストラクターが呼び出されることです。これを達成する方法を教えてください。

4

3 に答える 3

1

B のコンストラクターで初期化リストを使用する

class B : A
{
    public B() : A(42)
    {
        Console.WriteLine("I AM DERIVED class");
    }
};
于 2013-03-28T09:47:54.497 に答える
1

Bコンストラクタを次のように記述します。

 public B() : base(1)
 {
   Console.WriteLine("I AM DERIVED class");
 }

注: あなたが指定したコードは C++ ではなく C# であるため、質問タグを C# に変更しました。

于 2013-03-28T09:48:29.340 に答える
0
class B : A
{
    public B()
    {
        Console.WriteLine("I AM DERIVED class");
    }
    public B(int x)
    : A(x)
    {
        Console.WriteLine("I AM DERIVED class (with a parameter)");
    }
}
于 2013-03-28T09:48:14.630 に答える