2012年C++專家進階之二
相同點:都是函數名字相同
序号
差別項
重載
覆寫
隐藏
1
含義
無此一說
主要友善編寫代碼,函數可以重名
派生類函數覆寫基類函數
指派生類的函數屏蔽了與其同名的基類函數
2
範圍
相同範圍
不同的範圍
3
類
都在同一個類中
分别位于派生類與基類
4
參數
不同
相同
無所謂
5
Virtual關鍵字
無所謂,也就是可有可無
必須有
并且是基類函數必須有virtual關鍵字
1.參數不相同,不論基類函數有無virtual關鍵,基類的函數将被隐藏
2.參數相同,但是基類函數沒有virtual關鍵字,基類的函數被隐藏
6
作用
無
派生類函數隐藏基類函數
if(函數名稱相同)
{
if(同一個類中) //範圍相同
{
if(參數不相同)//
{
printf(“這就是重載的概念”);//
}
}
else if(一個派生類 && 一個是基類) // 分屬兩個不同的類
{
if(參數相同)
if(基類函數有關鍵字virtual)
{
printf(“這就是覆寫的概念”);
}
else
{
printf(“這就叫隐藏”);
}
}
else
{
printf(“這就叫隐藏”);
}
}
1.重載、覆寫、隐藏是3個概念;
2.滿足哪些具體的條件,才能叫重載、覆寫或者隐藏呢;
3.覆寫與隐藏的本質,就是基類函數不工作,工作的是派生類函數;
4.重載是針對一個類而言的概念,參數必須不同;
5.覆寫是針對基類、派生類而言,也就是有繼承關系的類而言,并且必須帶virtual關鍵字,參數要相同;
6隐藏是針對基類、派生類而言,也就是有繼承關系的類而言,隻要不是覆寫,必然是隐藏;
如果您跟人家講不清這3個概念,就寫一段代碼吧!代碼就是我們的溝通交流的語言。他懂的!!!!!