이 내가 이전에 물었다 문제에 대한 부분 2 : Is it possible to have polymorphic member overloading in C++?C++을 두 번 파견 문제
나는이 예제를 만든 위키 예를 사용.
내 문제는 컴파일 된 코드가 vtable을 조회하지 않으며 항상 상속 된 클래스 대신 기본 코드를 사용한다는 점입니다.
#include <iostream>
class xEntity;
class xVehicle;
class xMapObject
{
public:
virtual void Bump(xMapObject&) { std::cout << "MapObject Bump MapObject\n"; };
virtual void Bump(xEntity&) { std::cout << "MapObject Bump Entity\n"; };
virtual void Bump(xVehicle&) { std::cout << "MapObject Bump Vehicle\n"; };
};
class xEntity : public xMapObject
{
public:
virtual void Bump(xMapObject&) { std::cout << "Entity Bump MapObject\n"; };
virtual void Bump(xEntity&) { std::cout << "Entity Bump Entity\n"; };
virtual void Bump(xVehicle&) { std::cout << "Entity Bump Vehicle\n"; };
};
class xVehicle : public xEntity
{
public:
virtual void Bump(xMapObject&) { std::cout << "Vehicle Bump MapObject\n"; };
virtual void Bump(xEntity&) { std::cout << "Vehicle Bump Entity\n"; };
virtual void Bump(xVehicle&) { std::cout << "Vehicle Bump Vehicle\n"; };
};
int main(int argv, char **argc)
{
xEntity Entity;
xVehicle Vechile;
xMapObject &EntityRef = Entity;
xMapObject &VehicleRef = Vechile;
VehicleRef.Bump(EntityRef);
return 0;
}
그러나, 출력은 항상 :이 비밀에 어떤 도움을 주시면 더 좋구요
Vehicle Bump MapObject
여기 내 코드입니다.
이제는 많은 의미가 있습니다. 고맙습니다! –
귀하의 질문에 답변이있는 경우, 동의로 표시해야합니다. – Puppy
타이머가 만료 될 때까지 기다려야했습니다. –