考慮這種情況: 類BaseClass定義函數x()和y()。 x()調用y()。爲什麼派生對象不會在派生類中調用重定義函數?
類DerivedClass繼承自BaseClass並重新定義函數y()。
創建類DerivedClass的對象D並調用函數x()。
當調用x()時,使用哪個y(),是在BaseClass中定義的還是在DerivedClass中重定義的?
對象d調用中的BaseClass
函數X函數X()()調用在DerivedClass
函數調用函數Y()在BaseClass的,而不是函數y()在編譯時被綁定。
這是靜態綁定。
我不清楚爲什麼它的問題。如果調用函數X(通過對象D)並且對象D是派生類,那麼它不就是調用重新定義的類的D.Y()嗎?
這是我給出的樣本,我試圖弄清楚。
baseClass
void x(); // calls y();
void y();
derivedClass
void y();
main()
derivedClass D;
D.x();
你能在代碼中顯示一個例子嗎?閱讀代碼比閱讀代碼描述更容易 – Brian 2014-10-28 20:01:16
我添加了我的代碼。 – YelizavetaYR 2014-10-28 20:04:12
這不是C++代碼 - 請提供一個工作示例 – 2014-10-28 20:11:49