天天看點

2012年C++專家進階之二總結

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個概念,就寫一段代碼吧!代碼就是我們的溝通交流的語言。他懂的!!!!!

繼續閱讀