簡單的示例:
#include usingnamespace
std;
int sum(int x, int
y)int
main()
遇到過載的情況,編譯器通過指標型別精確匹配函式。
#include usingnamespace
std;
int sum(int x, int
y)int sum(int x, double
y)int
main()
將函式作為引數:
#include usingnamespace
std;
int sum(int x, int
y)typedef decltype(sum) func;
int useint2(int x, int
y, func f)
intmain()
返回型別不會自動地轉換成指標,我們必須顯示地將返回型別指定為指標,但是我想,除非是函式內部還可以建構函式(例如python那樣),否則返回函式也沒什麼用。
練習6.54
#include #includeusing
namespace
std;
int sum(int x, int
y)int
main()
6.55 & 6.56
#include #includeusing
namespace
std;
int add(int x, int
y)int subtract(int x, int
y)int multiply(int x, int
y)int divide(int x, int
y)int
main()
return0;
}
輸出結果:
168483
c primer, 5e 函式匹配
練習 6.49 候選函式 與所呼叫的函式的名字相同的函式的集合。可行函式 給候選函式加上引數數量 引數型別的約束所得到的函式的集合。6.50 a 3 4可行,二義匹配 b 2 4可行,2是最佳匹配 c 3 4可行,3是最佳匹配 d 3 4可行,4是最佳匹配 6.51 測試 include using...
《C Primer 5e》學習筆記(5) 函式
1.函式的呼叫完成兩項工作 一是用實參初始化函式對應的形參,二是將控制權轉移給被呼叫的函式。此時,主調函式的執行被暫時中斷,被調函式開始執行。2.函式定義規定了實參與形參存在的對應關係,但是並沒有規定實參的求值順序。編譯器能以任意可行的順序對形參進行求值。3.函式的返回值不能是陣列型別或函式型別,但...
C Primer(5e)第13章習題
如果乙個建構函式的第乙個引數是自身類型別的引用,且任何額外引數都有預設值,則此建構函式是拷貝建構函式。使用時候 1.用 定義變數 2.將要給物件作為實參傳遞給乙個非引用型別的實參 3.從乙個返回型別為非引用型別的函式返回乙個物件 4.用花括號列表初始化乙個陣列中的元素或乙個聚合類中的成員 因為如果拷...