C++中的delegate(委托)通常是通過函數(shù)指針、函數(shù)對(duì)象或lambda表達(dá)式實(shí)現(xiàn)的,這些實(shí)現(xiàn)方式在性能上可能會(huì)有一些差異。具體來說:
函數(shù)指針:使用函數(shù)指針實(shí)現(xiàn)delegate可能會(huì)有一定的性能開銷,因?yàn)樵谡{(diào)用時(shí)需要進(jìn)行指針解引用操作。但這種開銷通常是可以忽略不計(jì)的。
函數(shù)對(duì)象:使用函數(shù)對(duì)象(包括lambda表達(dá)式)實(shí)現(xiàn)delegate通常比函數(shù)指針更靈活,但可能會(huì)有一些額外的開銷,例如對(duì)象的構(gòu)造和拷貝。這種開銷通常也是可以忽略不計(jì)的。
總的來說,delegate的性能影響通常是微乎其微的,除非在非常嚴(yán)格的性能要求下,建議根據(jù)具體情況選擇最適合的實(shí)現(xiàn)方式。