C++ 继承 - QList
Posted
技术标签:
【中文标题】C++ 继承 - QList【英文标题】:C++ Inheritance - QList 【发布时间】:2012-03-13 17:23:55 【问题描述】:我有一个类 Car,它继承了 QList。我想知道如何使用我刚刚继承的 QList?
根据我对如何使用继承的业余理解,如果 Car 继承 Vehicle,我将通过 Vehicle::getWheels() 访问 Vehicle 的方法。如果我继承 QList,这将如何工作?
【问题讨论】:
从像 QList 这样的容器继承是没有意义的。它没有可以重新实现的虚拟方法。最好遵循“组合优于继承”规则,并使 QList 成为成员。 我完全同意 Frank Osterfeld 的观点 - 谢谢他。从容器类继承时要非常小心,并重新分析您的设计:遵循弗兰克提到的规则 【参考方案1】:如果您的 Car 继承自 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();
因此,对于您的问题,如果您的课程被取消为class Car : public QList< int > ... ;
,您可以简单地使用QList< int >
的成员而无需明确说明。
【讨论】:
如果 Car 继承了 QList,这将如何工作?例如,如何将元素添加到 QList 中? 你可以使用Car c; c.append(5);
以上是关于C++ 继承 - QList的主要内容,如果未能解决你的问题,请参考以下文章