函數調用運算符"()"


14.8函數調用運算符"()"
1.函數調用運算符必須是成員函數,一個類可以定義多個不同版本的調用運算符,但是他們相互之間應該在參數數量或返回類型上有所區別。定義了調用運算符的類的對象稱之為“函數對象”。此對象類似於函數名。
2. for_each只接受一元謂詞 如:for_each(vs.begin, vs.end(), PrintString(cerr, '\n'));for_each每次都會講一個vs的元素傳遞給PrintString創建的臨時對象。
3.lambda是未命名的函數對象類,需多次使用則用類的函數對象或普通函數,只需單次使用則用lambda表達式。
4.標准庫定義的函數對象

5.關聯容器使用less<key_type>對元素排序。
count_if(vec.begin(), vec.end(), bind2nd(greater<int>(), 1024)); //bind2nd表示后面提供的數字綁定第二個參數
6.一種調用類型對應一種函數類型 如:int(int, int)是一個函數類型,接受兩個int,返回一個int。
7.我們不能直接將重載函數的名字存入function類型的對象中,可以存儲函數指針和使用lambda來消除二義性。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM