2016-07-05 7 views
-5

派生クラスのコンストラクタで基本クラスのコンストラクタを呼び出す方法について学ぶことは重要ですか?派生クラスコンストラクタから基本クラスコンストラクタへの引数の受け渡し

私が言っていることは、実際にそれを行うアプリケーションはありますか?はいの場合、誰かに私に例を提供して、それを適用する時期とそうでない時期を説明できますか?

私はそれについて学びましたが、実際のアプリケーションで使用されているかどうかはわかりません。

class base { 
    int a; 
    int b; 
public: 
    base(int i, int j) { 
     a=i; 
     b=j; 
    }  
}; 

class derived : public base { 
public: 
    derived(int p, float q) : base(p, q) //passing parameters to base class 
    { } 
    }; 
+5

引数を渡すための基本を学ぶことはとても簡単なので簡単に始めることができます。あなたがそれを知る前に、あなたはそれを学んだのです。それは、あなた自身がこれを教えるようになるための、実用的な最小限の最小限の必要性を持っています。 –

+0

時間の75-90%私は子孫クラスを持っています。私は基本コンストラクタを呼び出します。そうです、それは重要です:)。 – lorro

+2

この例では、 'base'にデフォルトのコンストラクタがないので、明示的なパラメータで' base'コンストラクタを呼び出すには 'derived'が必要です。あなたはあなた自身の質問に答えました。 – Kevin

答えて

0

、それを行うのいずれかの実用的なアプリケーションは、私は何を意味しているされています。ここでは

は一例ですか?

はい。ユースケースの数が多すぎるため、ここにリストできません。

はいの場合、誰かが私に例を提供して、それを適用する時期とそうでない時期を説明できますか?

これを適用する例はいくつかあります。

例1:

struct Rectangle 
{ 
    Rectangle(int w, int h) : width(w), height(h) {} 
    int width; 
    int height; 
}; 

struct Square : Rectangle 
{ 
    Square(int size) : Rectangle(size, size) {} 
}; 

例2:

struct Employee 
{ 
    Employee(std::string const& name, int id) : name(name), id(id) {} 
    std::string name; 
    int id; 
}; 

struct Manager : struct Employee 
{ 
    Manager(std::string const& name, int id) : Emplyee(name, id) {} 
    void addEmployee(int id) 
    { 
     managedEmployeeIDs.insert(id); 
    } 

    std::set<int> managedEmployeeIDs; 
}; 

それは不適切であることができますので、多くの方法があるので、それが適切でない場合に示唆することは困難です。例を挙げれば、適切な時期を知ることがより簡単になります。

+0

thnxxxたくさんの友達...私はそれを持って:) – Ayush

関連する問題