程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> C++和C不同是因為函數重載

C++和C不同是因為函數重載

編輯:更多關於編程

      在C語言裡,一個指針可以指向一個函數。這個指針也有兩個屬性,但一個是函數的入口地址,另一個是函數的返值類型。例如下面的程序,它在C語言裡是正確的:

      int time12(int i)

      { return(i%12);

      }

      int main()

      { int(*fp)()=time12;

      intt=fp(13);

      return0;

      }

      主函數的第一句是一條定義語句。我們應從等號左邊的標識符讀起,等號左邊出現的除了標識符以外都是類型的符號,讀的順序卻要按照這個符號作為運算符時的運算級別來讀。此句讀作:fp是一個指針、它指向函數(注意,C語言允許其參數類型不寫出)、這個函數的返值是int、這個指針被初始化為函數time12的入口地址。

      然而,上述程序在C++裡,第一條語句卻被認為是有錯誤的。C++是強類型檢查語言,這與C++的函數重載機制有關。C++要求必須指出函數的所有形式參數的類型。下列程序才是正確的C++程序:

      int time12(int i)

      { return(i%12);

      }

      int main()

      { int(*fp)(int)=time12;

      intt=fp(13);

      return0;

      }

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved