以前經常學習慮函式 最多的是當基類指標構造子類物件時,呼叫函式的應用,但是以前沒這一點:
子類物件呼叫基類成員函式a,然後基類成員函式又會呼叫乙個類成員函式b,這個類成員函式b在子類中也定義,基類中也定義(基類和子類同時擁有)。此時成員函式a內部是呼叫基類的成員函式b還是子類的成員函式b呢。
答案是:當基類的這個成員函式宣告為virtual時,不管怎樣,只有子類有此函式,優先呼叫子類的。否則,呼叫基類的
如下圖所示
出處:
張東公升
類成員函式,虛函式及虛函式表,記憶體布局
類的普通成員函式 非static,非virtual,非friend class a 注意,當foo函式是虛函式,或者foo函式體內要用到類的成員變數時,上述呼叫全部錯誤,因為要根據物件位址偏移來尋找虛函式表或者成員變數 貌似類的成員函式,只有static函式可以用a fun 域操作符來訪問,普通函式...
Python中類的成員函式都是虛函式
這裡有篇文章 沒寫到點子上。應該這樣來看 class a def f self print af def g self self.f class b a def f self print bf b b b.g 輸出 bf 成員變數都是 虛 的 class a def init self self.m...
成員函式呼叫虛函式
在乙個基類或派生類的成員函式中可以直接呼叫該類等級中的虛函式,例如 class a void act2 virtual void act3 virtual void act4 void act5 void act4 void act5 在上例情況下,this指向b,所以a act2 呼叫b act3...