任鳥飛C++逆向安全從零基礎(chǔ)到進(jìn)階
2023-07-29 13:31 作者:bili_93891819972 | 我要投稿
C++逆向?qū)W習(xí)(三) 移動構(gòu)造函數(shù)
move語義
比如在?vector.push_back(str)?時(shí),?str(類)?作為實(shí)參,會復(fù)制一份自身成為形參,進(jìn)入函數(shù)調(diào)用
而這個(gè)過程中就會產(chǎn)生?臨時(shí)對象?,那么也就會調(diào)用?拷貝構(gòu)造函數(shù)
而如果?vector.push_back(std::move(str))?,就可以匹配?移動構(gòu)造函數(shù)?,省去這個(gè)拷貝過程以提高效率
鏈接中已經(jīng)解釋的很詳細(xì)了,不再贅述,總之就是?給將亡值續(xù)命?,延長它的生命周期(原本很可能是一個(gè)臨時(shí)變量)
代碼分析
接下來的部分內(nèi)容可以作為上一篇文章C++逆向?qū)W習(xí)(二) vector的補(bǔ)充,在分析?移動構(gòu)造函數(shù)時(shí)又學(xué)到了一些之前沒有注意過的?vector?的細(xì)節(jié)
Str類源碼
標(biāo)簽: