2012-03-13 20 views
0

私はQList < int>を継承するクラスCarを持っています。私はちょうど継承したQListをどのように使用するのだろうと思いますか?C++継承 - QList

私のアマチュアの継承方法の理解から、CarがVehicleを継承すると、Vehicle :: getWheels()に移動してVehicleのメソッドにアクセスします。 QListを継承しても、どうすればうまくいくのでしょうか?

+7

QListのようなコンテナから継承することには意味がありません。再実装できる仮想メソッドはありません。 「継承を継承する」ルールに従い、QListをメンバーにすることをお勧めします。 –

+0

私はFrank Osterfeldと完全に同意しています - 彼に感謝します。クラスのようなコンテナから継承しながら、非常に慎重に設計し直してください。フランクのルールに従います。 – milyaaf

答えて

1

車が自動車から継承される場合は、継承された方法を使用することができます(上書きしていない場合)。例:

class Vehicle 
{ 
    int wheels_; 

    public: 
     Vehicle(int wheels=4) 
     : wheels_(wheels) 
     { 
     } 

     int getWheels() const { return wheels_; } 
}; 

class Car: public Vehicle 
{ 
}; 

Car myCar; 
myCar.getWheels(); 

は、だからあなたの質問のために、あなたは、単にあなたのクラスは class Car : public QList<int> { ... };としてdeclearedれた場合は、明示的なことなく QList<int>のメンバーを使用することができます。

+0

CarがQList < int >を継承するとどうなりますか?たとえば、QListに要素を追加するにはどうすればよいですか? – user27279

+0

あなたは 'Car c; c.append(5); ' – hochl