函式呼叫符過載

2021-06-21 11:20:24 字數 1084 閱讀 7123

經常見到 std::accumulate (numbers, numbers+3, init,

std::minus()) 這種使用方法:

(1)  其實,std::minus() 還是表示乙個函式——minus.operator()

(2) std::minus 是乙個類,不是乙個物件,std::minus() 其實是呼叫的建構函式

也就是說,這裡 std::minus() 這種寫法要經歷 2 步轉化,看下面的**

#include // std::cout

#include // std::minus

#include // std::accumulate

struct myclass

};int main ()

; myclass myobject;

std::cout << "using default accumulate: ";

std::cout << std::accumulate(numbers,numbers+3,init);

std::cout << '\n';

// std::minus() 這是建構函式

std::cout << "using functional's minus: ";

std::cout << std::accumulate (numbers, numbers+3, init, std::minus());

std::cout << '\n';

// myobject 和 myclass() 是一樣的

std::cout << "using custom object: ";

std::cout << std::accumulate (numbers, numbers+3, init, myobject);

std::cout << " ";

std::cout << std::accumulate (numbers, numbers+3, init, myclass());

std::cout << '\n';

return 0;

}

過載函式呼叫操作符

函式呼叫操作符?函式呼叫操作符是 因此此操作符的函式過載是operator 過載函式呼叫操作符的類物件稱為函式物件或仿函式,因此我們可以像使用函式名一樣使用物件名。先看乙個簡單的例子。過載了函式呼叫操作符的乙個類 class area 上面的類中,操作符函式計算乙個面積,它是兩個整數實參的乘積。為了...

函式呼叫符()過載及總結

為了優化類成員函式的呼叫,對函式呼叫符 進行過載 include using namespace std class fun 過載 第乙個 是過載的符號 第二個 是標明要傳參 intoperator int x,int y void test01 intmain int argc,char ar 因...

C 中函式呼叫操作符的過載

1,本博文講述函式物件問題 2,客戶需求 1,編寫乙個函式 1,函式可以獲得斐波那契數列每項的值 2,每呼叫一次返回乙個值 3,函式可根據需要重複使用 4,示例 1 for int i 0 i 10 i 2 3,第乙個解決方案程式設計實驗 1,main.cpp 檔案 1 include 2 incl...