2012-03-13 83 views
0

我有一个类Car,它继承了QList < int>。我想知道如何使用我刚刚继承的QList?C++继承-QList

从我的业余爱好者对如何使用继承的理解中,如果Car继承了Vehicle,我将通过使用Vehicle :: getWheels()来访问Vehicle的方法。如果我继承QList,这将如何工作?

+7

从像QList这样的容器继承是没有意义的。它没有可以重新实现的虚拟方法。更好地遵循“继承构成”规则,并使QList成为成员。 – 2012-03-13 17:57:30

+0

我完全同意弗兰克奥斯特费尔德 - 谢谢他。从容器中类继承时要非常小心,并重新分析您的设计:遵循Frank提到的规则 – milyaaf 2012-03-14 06:39:13

回答

1

如果你的汽车继承自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> { ... };

+0

如果Car继承QList < int >,这将如何工作?例如,我如何将元素添加到QList中? – user27279 2012-03-13 17:30:51

+0

你可以用'Car c; c.append(5);' – hochl 2012-03-13 17:39:31