也許是一個愚蠢的問題。如何確定函數是否在編譯時被覆蓋?
假設我有以下:
class A{
int x;
int y;
virtual int get_thing(){return x;}
};
class B : public A {
int get_think(){return y;}
};
在上面的例子中,B :: get_thing返回X,因爲上位代碼有一個錯字。
如何確保在編譯時的get_thing函數已在類B中覆蓋,以便返回y?
在特定的情況下,它是很簡單的:非虛函數永遠不會被覆蓋*。 –
@DavidRodríguez-dribeas對,在例子中輸入錯誤。我的意思是,我沒有因爲某種原因虛擬出虛擬空間。 –
你真的想要什麼?強制'B'的實現者重寫該函數?爲了確保'get_thing'的簽名與基礎中的虛擬函數相同? –