我即將絕望!我需要調用從一個指針非虛成員函數,我的基類:從基地調用非虛擬成員函數
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