상속에 대해이 문제가 있습니다. 머리를 감쌀 수 없습니다. 나는 그들 사이에 부모 관계가있는 세 가지 수업을 가지고있다. 그들 모두는 기능이 입니다 calcForces(). 상속 : 자식이 자신의 부모 가상 함수를 사용합니다.
class Object {
public:
virtual void calcForces();
};
class Boat : public Object {
public:
virtual void calcForces();
};
class Sailboat : public Boat {
public:
void calcForces(Wind wind);
};
지금 내 문제 II (그리고 객체 포인터를 저장)를
요트으로 만든 개체가,하지만 난
calcForces()를 호출 할 때 나는 :: 보트
안에 끝날 것입니다 calcForces() 아니요
Sailboat :: calcForces(). 내가 도대체 뭘 잘못하고있는 겁니까? 오버라이드 (override)의
(*this->object_ptr_arr[i]).calcForces(); //'object_ptr_arr' is of type 'Object**'
[MCVE]를 보여주십시오. –
다형성 동작을 위해 포인터를 통해 호출해야합니다. 시도해보십시오 :'this-> object_ptr_arr [i] -> calcForces();' – Galik
이런 종류의 문제를 피하려면 http://en.cppreference.com/w/cpp/language/override – stefaanv