我試圖重寫基類中的另一種方法使用的基類的方法;但是,當派生類調用基類的using方法時,派生的used-method從不執行,而是調用基類的used-method。下面是一個例子:C++使基類在子類中使用重寫的方法
#include <iostream>
using namespace std;
class Base {
public:
Base() {}
virtual ~Base() {}
void printLeft() { cout << this->getLeft(); }
int getLeft() { return 0; }
};
class Derived: public Base {
public:
Derived() {}
virtual ~Derived() {}
int getLeft() { return 1; }
};
int main(int argc, char *argv[]) {
Derived d = Derived();
d.printLeft();
}
運行main()
打印0
,表明Base
的getLeft()
方法使用,而不是派生的對象的方法。
如何更改此代碼,使Derived::getLeft()
在Derived的實例中調用時調用?
對不起,我沒有時間。這個項目明天到期。但是,謝謝你的建議。 – weberc2
對於downvoter(s),這個問題有什麼特別錯誤嗎?我應該澄清一些事情嗎?我試圖研究,但由於我不知道我想描述的現象的術語,所以我無法找到任何相關的結果。 – weberc2
我低估了這個問題,但直到你告訴我你不願意讀一本書來學習C++時,我才這樣做。 –