一、類中的函數(shù)重載:
1、函數(shù)重載的溫習:
函數(shù)重載的本質為相互獨立的不同函數(shù)
C++中通過函數(shù)名和函數(shù)參數(shù)確定函數(shù)調用
無法直接通過函數(shù)名得到函數(shù)重載函數(shù)的入口地址
函數(shù)重載必然發(fā)生在同一個作用域中
2、類中的成員函數(shù)可以進行重載:
構造函數(shù)的重載
普通成員函數(shù)的重載
靜態(tài)成員函數(shù)的重載
這里有一個問題:全局函數(shù),普通成員函數(shù)以及靜態(tài)成員函數(shù)之間是否可以構成重載?
從上面回顧重載函數(shù)的知識中,我們要注意到一點函數(shù)重載必須發(fā)生在同一作用域里面(其他兩點問題不大),所以的構造函數(shù)和普通成員函數(shù)是可以構造重載的,而與全局函數(shù)是不可以構成重載的。
代碼測試:
輸出結果:
3、重載的意義:
通過函數(shù)名對函數(shù)功能進行提提示
通過參數(shù)列表對函數(shù)用法進行提示
擴展系統(tǒng)中已經(jīng)存在的函數(shù)功能
這里用c語言里面的拷貝字符串函數(shù)strcpy來進行擴展演示:
代碼版本一:
輸出結果:
這里雖然結果是輸出多了,但是這個程序同時也報了段錯誤,因為buf所能存儲的能力小于s;所以為了解決這個問題,你肯定第一時間想到strncpy函數(shù):
代碼版本二:
輸出結果:
這個函數(shù)就保護程序的安全性;但是我在c++里面既然學習了函數(shù)重載,那么久可以在原有的函數(shù)基礎上進行擴展:
代碼版本三:
輸出結果:
二、總結:
類的成員函數(shù)之間可以進行重載;
重載必須發(fā)生在同一個作用域中;
全局函數(shù)和成員函數(shù)不能構成重載關系;
重載的意義在于擴展已經(jīng)存在的功能。
-
函數(shù)
+關注
關注
3文章
4240瀏覽量
62011 -
C++
+關注
關注
21文章
2085瀏覽量
73320
發(fā)布評論請先 登錄
相關推薦
評論