我有一個類Car,它繼承了QList < int>。我想知道如何使用我剛剛繼承的QList?C++繼承-QList
從我的業餘愛好者對如何使用繼承的理解中,如果Car繼承了Vehicle,我將通過使用Vehicle :: getWheels()來訪問Vehicle的方法。如果我繼承QList,這將如何工作?
我有一個類Car,它繼承了QList < int>。我想知道如何使用我剛剛繼承的QList?C++繼承-QList
從我的業餘愛好者對如何使用繼承的理解中,如果Car繼承了Vehicle,我將通過使用Vehicle :: getWheels()來訪問Vehicle的方法。如果我繼承QList,這將如何工作?
如果你的汽車繼承自Vehicle,你可以簡單地使用繼承的方法(如果你沒有覆蓋那些方法)。例如:
class Vehicle
{
int wheels_;
public:
Vehicle(int wheels=4)
: wheels_(wheels)
{
}
int getWheels() const { return wheels_; }
};
class Car: public Vehicle
{
};
Car myCar;
myCar.getWheels();
因此,對於你的問題,你可以簡單地使用QList<int>
成員沒有被明確的,如果你的類是decleared爲class Car : public QList<int> { ... };
。
從像QList這樣的容器繼承是沒有意義的。它沒有可以重新實現的虛擬方法。更好地遵循「繼承構成」規則,並使QList成爲成員。 – 2012-03-13 17:57:30
我完全同意弗蘭克奧斯特費爾德 - 謝謝他。從容器中類繼承時要非常小心,並重新分析您的設計:遵循Frank提到的規則 – milyaaf 2012-03-14 06:39:13