2012-03-13 4 views
0

QList < int>을 (를) 상속받은 Car 클래스가 있습니다. 방금 상속 한 QList를 어떻게 사용할 수 있을지 궁금합니다.C++ 상속 - QList

상속 사용 방법에 대한 나의 아마추어 이해에서 Car가 Vehicle을 상속하는 경우 Vehicle :: getWheels()로 이동하여 Vehicle의 메소드에 액세스합니다. QList를 상속 받으면 어떻게 될까요?

+7

QList와 같은 컨테이너에서 상속 할 필요가 없습니다. 다시 구현할 수있는 가상 메소드가 없습니다. "Composition over Inheritance"규칙을 따르고 QList를 구성원으로 지정하는 것이 좋습니다. –

+0

나는 Frank Osterfeld와 완전히 동의한다 - 고마워. 클래스와 같은 컨테이너에서 상속하면서 매우 신중하게 디자인하고 다시 디자인을 다시 분석하십시오. Frank의 언급 된 규칙을 따릅니다. – 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