學習了類的繼承,今天說一下當父類與子類中有同名函數和變數時那麼程式將怎麼執行。首先明確當基類和子類有同名函數或者變數時,子類依然從父類繼承。 舉例說明: 常式說明: 父類和子類有同名的成員 data;同名函數printfa(); 子類增加兩個列印函數:void son_data();void fat ...
學習了類的繼承,今天說一下當父類與子類中有同名函數和變數時那麼程式將怎麼執行。首先明確當基類和子類有同名函數或者變數時,子類依然從父類繼承。
舉例說明:
常式說明:
父類和子類有同名的成員 data;同名函數printfa();
子類增加兩個列印函數:void son_data();void father_data(); 分別列印自身的data 和繼承來的data變數。
總結說明同名函數/變數的使用:
1.訪問繼承的同名成員:
內部訪問:
父類名::成員;
1 void father_data() 2 { 3 //訪問父類成員 使用this指針訪問自身的成員 4 cout<<"father data : "<<father::data<<endl; 5 }
外部訪問(main函數52 /57行):
對象名.父類名::成員
2.使用this指針指向同名成員訪問的是在本類的成員。
3.同名成員的訪問需要加上 類名::成員 ,如果沒加上類名則預設訪問子類的成員。
4.同名的成員分配在不同的記憶體中,不存在記憶體共用衝突的問題
同名函數和函數重寫virtual關鍵字的使用 在下一篇筆記中