java中只有重載和覆蓋,由於c++有virtual關鍵字,於是就多了個隱藏。
重載的特徵:同一個作用域中(比如在同一個類),函數名相同,參數不同,virtual可有可無。
覆蓋的特徵:在兩個類(基類和派生類),函數名和參數都相同,且必須有virtual關鍵字。
隱藏的特徵:基類函數名和派生類函數名相同參數不同,且不管是否有關鍵字。或函數名、參數均相同,但基類函數沒有virtual(有的話就是覆蓋)不能覆蓋而只能隱藏基類非虛函數。
參考:《高質量C++編程指南》
java中只有重載和覆蓋,由於c++有virtual關鍵字,於是就多了個隱藏。
重載的特徵:同一個作用域中(比如在同一個類),函數名相同,參數不同,virtual可有可無。
覆蓋的特徵:在兩個類(基類和派生類),函數名和參數都相同,且必須有virtual關鍵字。
隱藏的特徵:基類函數名和派生類函數名相同參數不同,且不管是否有關鍵字。或函數名、參數均相同,但基類函數沒有virtual(有的話就是覆蓋)不能覆蓋而只能隱藏基類非虛函數。
參考:《高質量C++編程指南》