調用父類的功能,我有:C++:如何從外部
class A{
public:
virtual void foo();
};
class B : public A{
public:
void foo();
};
B *ptr = new B();
我想打電話給A的foo()
直接使用「PTR」指針。
當我嘗試
(A*)ptr->foo();
它仍然調用B的版本foo()
。我如何調用A的版本?
這可能嗎?有什麼選擇?謝謝。
看看http://en.wikipedia.org/wiki/Scope_resolution_operator – Pramod
你能澄清你的意思是「沒有工作」嗎?當你嘗試上面的代碼時會發生什麼? –
這樣做完全違背了虛擬函數的目的,所以它意味着類「A」的用戶正在逃避類設計者的意圖。這可能意味着某處存在設計錯誤:「A」不提供所需的所有功能,或者「A」的用戶不理解「A」應該執行的操作。 –