나는 절망에 빠져있다!비 - 가상 멤버 함수를베이스에서 호출
class A { };
class B : public A { public: void evilFunction() { std::cout << "Yay!"; } };
int main(void) {
A *pointer = new B();
// Now do something like this:
// pointer->evilFunction();
return 0;
}
은 내가 dynamic_cast는 함께 할 수있어 -하지만 난에 허용되지 않아 : 내 기본 클래스에 대한 포인터에서 가상이 아닌 멤버 함수를 호출 할 필요가! 나는 내가 할 수있는 일을 정말로 모른다. 이론적으로, 포인터를 가지고 있기 때문에 포인터 연산을 사용하여 함수의 메모리 위치를 얻은 다음 호출 할 수있는 마법을 사용할 수 있다고 확신하지만이 작업을 수행하는 방법이나 적어도 어떻게 수행해야할지 모르겠다. 스타트.
나에게 힌트를 줄 수있는 사람은 누구입니까? 그게 내가 원하는 전부 야. 아니면 서사시 초보자 스킬을 사용하여 g ++을 삭제하는 코드를 작성하여 C++의 고통에 대한 보복으로 사용할 것입니다! 그 일을 그냥 내버려 둘 수는 없잖아요.
가상 기능을 사용하는 교과서 사용 사례입니다. –
사실,'dynamic_cast'로 이것을 할 수 없습니다. –
왜 당신은 .. ~해야합니까? – Sean