什么是函數(shù)對象
發(fā)布時間:2021-10-26 07:14:38
5月24日 顧名思義,就是在某種方式上表現(xiàn)得象一個函數(shù)的對象。典型地,它是指一個類的實例,這個類定義了應(yīng)用操作符operator()。
函數(shù)對象是比函數(shù)更加通用的概念,因為函數(shù)對象可以定義跨越多次調(diào)用的可持久的部分(類似靜態(tài)局部變量),同時又能夠從對象的外面進行初始化和檢查(和靜態(tài)局部變量不同)。例如:
class Sum {
int val;
public:
Sum(int i) :val(i) { }
operator int() const { return val; } // 取得值
int operator()(int i) { return val+=i; } // 應(yīng)用
};
void f(vector v)
{
Sum s = 0; // initial value 0
s = for_each(gin(), d(), s); // 求所有元素的和
cout \"the sum is \" s \"\\n\";
//或者甚至:
cout \"the sum is \" for_each(gin(), d(), Sum(0)) \"\\n\";
}
注意一個擁有應(yīng)用操作符的函數(shù)對象可以被完美地內(nèi)聯(lián)化(inline),因為它沒有涉及到任何指針,后者可能導(dǎo)致拒絕優(yōu)化。與之形成對比的是,現(xiàn)有的優(yōu)化器幾乎不能(或者完全不能?)將一個通過函數(shù)指針的調(diào)用內(nèi)聯(lián)化。
在標(biāo)準(zhǔn)庫中,函數(shù)對象被廣泛地使用以獲得彈性。查看本文來源
哈爾濱白癜風(fēng)哪家醫(yī)院好武漢治白癜風(fēng)專業(yè)醫(yī)院
西安婦科醫(yī)院哪好
猜你會喜歡的
- 廣州當(dāng)前疫情傳播鏈條清晰 主要傳播分支基本得到支配
- 全球糧食危機加劇,中國如何應(yīng)對?第三世界發(fā)展改革委回應(yīng)
- 揭秘準(zhǔn)媽媽肚子上那條神秘的“孕婦中線”,看完你就明白了
- SOHO中國CFO倪葵陽疑因內(nèi)幕交易被核查
- 千萬絕不會再傻傻被小人欺負了,用好這3招,你才會越來越厲害!
- 如懿傳中,青櫻從新娘到封妃前竟換了9套衣服,真是服裝師的寵兒
- 佛山大動作!500億產(chǎn)業(yè)基金群來了!主要投到這四大領(lǐng)域...
- 收藏!新形式嘉興那些隱藏在大街小巷中,技藝精湛的老中醫(yī)~
- 那些摯愛,那個你
- 90個小時建成,廈門這個智能方艙投用,提供免費藍牙耳機
- “5GiPhone殼”,欲救華為于水火?
- 亞洲地區(qū)新增112+241,在11省份→
猜你會喜歡的