(三) c++ 初始化、線程、回調(diào)函數(shù)與lambda表達(dá)式
初始化
????一開始學(xué)C++,都是被告知說(shuō)使用初始化列表(可以保證初始化順序)。
????但是呢,一個(gè)類內(nèi)成員變量很多時(shí),初始化列表會(huì)變得很長(zhǎng),即使折行也使得構(gòu)造函數(shù)太難看了。
????這時(shí)可以使用定義時(shí)初始化。《Effective Modern C++》條款7 對(duì)象初始化 {} vs. ()
????習(xí)慣了C就會(huì)習(xí)慣使用0或者NULL,但在C++中《Effective Modern C++》條款8 優(yōu)先選用nullptr
自己的思想:
????1. 保持純粹的初始化,不使用如下行為

????2. 應(yīng)該是優(yōu)先使用{}來(lái)初始化吧。
????3. 申請(qǐng)/釋放:在明確使用情況下使用C++智能指針,否則繼續(xù)保持C思維,自己申請(qǐng)自己釋放(生命周期掌握在自己手里,才能更好地去統(tǒng)籌資源)
線程
????在Linux下,std::thread封裝自pthread,所以是否有必要使用std::thread?
????既然是學(xué)習(xí),那就用吧
????thread_local C和C++都有,線程生命周期內(nèi)都存在,所以利用thread_local可以做一些提高效率的事情:(來(lái)自網(wǎng)絡(luò)文章介紹)

線程有時(shí)候需要睡眠:(來(lái)自網(wǎng)絡(luò)文章介紹)

習(xí)慣C思維的簡(jiǎn)單封裝

做個(gè)簡(jiǎn)單提示???

其他

回調(diào)函數(shù)
? ? (都是沒(méi)有接觸學(xué)習(xí)過(guò)的新知識(shí))
????使用std::function類型指針????
? ? 同時(shí)《Effective Modern C++》條款9 用using替代typedef
? ? 使用回調(diào)者很簡(jiǎn)單

????被回調(diào)者怎么傳入?
????std::function和std::bind
????《Effective Modern C++》條款34 優(yōu)先lambda式,而非bind
????視頻說(shuō)的情況還沒(méi)完全理解
????目前就簡(jiǎn)單使用lambda表達(dá)式做中轉(zhuǎn)

????
目前運(yùn)行良好,以后有問(wèn)題再繼續(xù)深入學(xué)習(xí)。
