覆蓋(重寫)
概念:
基類的虛函數,如果派生類有相同的函數,則子類的方法覆蓋了父類的方法
隱藏
概念:
當子類定義出的“成員變量、方法”與父類的重名時,父類的會被隱藏
重點:對于函數,基類定義了一些列的重載函數,在派生類中只要有一個同名的函數(即使參數列表不一致),基類的這些重載函數全部會被隱藏
如果想調用父類的成員變量、方法,需要加上父類的類名限定符
備注:除了覆蓋繼承而來的虛函數之外,派生類最好不要隱藏在基類中的名字
C++類中覆蓋與隱藏一直是一個容易理解出錯的地方,接下來我就詳細講解一下區別在何處
覆蓋指的是子類覆蓋父類函數(被覆蓋),特征是:
1.分別位于子類和父類中
2.函數名字與參數都相同
3.父類的函數是虛函數(virtual)
隱藏指的是子類隱藏了父類的函數(還存在),具有以下特征:
子類的函數與父類的名稱相同,但是參數不同,父類函數被隱藏
子類函數與父類函數的名稱相同,參數也相同,但是父類函數沒有virtual,父類函數被隱藏
class father
{
public:void show1()
{