1
考慮下面的代碼指針到虛擬成員函數
class BASE
{
public:
virtual void test_f(){std::cout<<"BASE::test_f\n";}
};
class DERIVED:public BASE
{
public:
virtual void test_f(){std::cout<<"DERIVED::test_f\n";}
};
void (BASE::*p_base)() = &BASE::test_f;
p_base是一個指針,指向類的成員函數,但它是多態的。 這意味着,
DERIVED a;
(a.*p_base)();
將打印衍生:: TEST_F
我怎麼能得到的指針的基類的TEST_F使非多態的電話嗎?
你爲什麼要創建一個指向一個多態函數?對我沒有太大的意義。 –
是的,我知道。我只是好奇這些事情是如何運作的。 – zulunation