一、基本概念
1拗胜、重載:
它是指同一訪問區(qū)內(nèi)被聲明的幾個具有不同參數(shù)列(類型蔗候、個數(shù)、順序)的同名函數(shù)埂软,根據(jù)參數(shù)列表確定調(diào)用哪個函數(shù)锈遥,不關(guān)心函數(shù)的返回類型。
例子:
class A {
public:
void test(int i);
void test(double d); //overload
void test(int i, double d); //overload
void test(double d, int i); //overload
int test(int i); //錯誤勘畔,非重載所灸,注意重載不關(guān)心函數(shù)的返回類型
};
2、重寫(覆蓋):
它是指派生類中存在重新定義的函數(shù)咖杂,其函數(shù)名庆寺、參數(shù)列表、返回值類型诉字,所有的都必須與其基類中被重寫的函數(shù)一致懦尝,只有函數(shù)體不同。重寫的基類中被重寫函數(shù)必須有virtual修飾壤圃。
3陵霉、隱藏:
它是指派生類的函數(shù)屏蔽了其基類中的與之同名函數(shù),只要函數(shù)名相同伍绳,不管參數(shù)列表和返回值類型踊挠,基類函數(shù)都會被隱藏。
4冲杀、重載與重寫的區(qū)別:
(1)效床、范圍區(qū)別:
重寫和被重寫的函數(shù)在不同的類中,重載和被重載的函數(shù)在同一類中权谁。
(2)剩檀、參數(shù)的區(qū)別:
重寫與被重寫的函數(shù)參數(shù)列表一定相同,而重載與被重載的函數(shù)參數(shù)列表一定不同旺芽。
(3)沪猴、virtual的區(qū)別:
重寫的基類必須要有virtual修飾,而重載與被重載函數(shù)可有可無virtual修飾采章。
5运嗜、隱藏與重寫、重載的區(qū)別:
(1)悯舟、與重載范圍不同:
隱藏函數(shù)和被隱藏函數(shù)在不同類中担租。
(2)、參數(shù)的區(qū)別:
隱藏函數(shù)和被隱藏函數(shù)參數(shù)列表可以相同抵怎,也可以不同翩活,但函數(shù)名一定相同阱洪;當(dāng)參數(shù)不同時,無論基類中的函數(shù)是否被virtual修飾菠镇,基類函數(shù)都是被隱藏冗荸,而不是重寫。
參考文獻(xiàn):
https://www.cnblogs.com/zhangjxblog/p/8723291.html