運算符重載是計算機編程語言的一種功能,允許程序員重寫默認運算符。當運算符函數重載時,它可以用自定義參數聲明,這些參數的數據類型與默認運算符所能處理的數據類型不同。新參數可以是原始參數,也可以是用戶定義的類型。...
運算符重載是計算機編程語言的一種功能,允許程序員重寫默認運算符。當運算符函數重載時,它可以用自定義參數聲明,這些參數的數據類型與默認運算符所能處理的數據類型不同。新參數可以是原始參數,也可以是用戶定義的類型。在重寫函數的主體中,程序員可以根據需要操作參數值。通過使用運算符重載,程序員可以創建直觀的快捷方式來操作用戶定義的數據類型或修改默認數據類型的處理方式。C允許重載某些運算符。當用戶定義如果創建了數據類型,則無法執行簡單的操作任務,例如將其中的兩個添加到一起或通過對數據類型使用一元遞增運算符來遞增內部數據。運算符(包括加法符號)可以被重寫,以便如果將它們用作兩個自定義數據類型之間的二進制運算符,則它們將返回一個用戶定義的結果。同樣,一元運算符(如遞增運算符)可能被重寫以增加用戶定義類型內的內部值。一旦運算符重載,編譯器必須決定遇到重載運算符時要做什么。編譯器根據用作操作數或與運算符一起使用的數據類型來決定要采取的正確操作。如果運算符函數的參數值操作數是用戶定義的數據類型,則編譯器將選擇具有與所使用的操作數匹配的參數的重載函數。計算機語言允許這種特殊多態性的方式各不相同。不同的語言可能允許創建新的自定義運算符,重載其所有或部分運算符,或者根本不允許運算符重載C、 C#、PHP和Perl都允許重載它們的某些運算符。在C、Java和Javascript中不允許重載運算符。運算符重載和函數重載通常都是一些爭論的主題。一些人聲稱,給予程序員改變運算符行為方式的自由可能會引入使用自定義代碼的其他程序員可能會產生無意的錯誤。相反的觀點認為,允許運算符重載使程序員能夠創建更易于理解、成本更低、減少錯誤的直觀簡潔代碼
-
發表于 2020-08-06 07:18
- 閱讀 ( 749 )
- 分類:電腦網絡