第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

請(qǐng)問(wèn)這里把mutex作為類(lèi)的成員變量為什么就不行呢?應(yīng)當(dāng)如何修改?

請(qǐng)問(wèn)這里把mutex作為類(lèi)的成員變量為什么就不行呢?應(yīng)當(dāng)如何修改?

C++
慕標(biāo)琳琳 2023-03-03 14:10:48
只是一段模擬多個(gè)售票點(diǎn)同時(shí)賣(mài)票的演示程序,代碼如下class TicketShop{char name;static int remains;mutex myMutex;public:TicketShop(char n){ name = n; }void sell();};int TicketShop::remains = 100;void TicketShop::sell(){while (1){myMutex.lock();if (remains > 0){remains--;cout << remains << "\t" << name << endl; }else{myMutex.unlock();break;}myMutex.unlock();}}結(jié)果編譯時(shí)報(bào)錯(cuò),說(shuō)error C2280: 'std::mutex::mutex(const std::mutex &)' : attempting to reference a deleted function發(fā)現(xiàn)如果把第五行mutex myMutex 的生命移到類(lèi)外,即改成全局變量,就沒(méi)有這個(gè)問(wèn)題。
查看完整描述

2 回答

?
largeQ

TA貢獻(xiàn)2039條經(jīng)驗(yàn) 獲得超8個(gè)贊

是你構(gòu)造TicketShop對(duì)象的地方,可能是你的主函數(shù)里,你沒(méi)貼出來(lái),可能是寫(xiě)了類(lèi)似:


TicketShop s1;TicketShop s2 = s1;

這樣的代碼,而你的TicketShop類(lèi)使用默認(rèn)的拷貝構(gòu)造函數(shù),導(dǎo)致上面代碼第二句構(gòu)造s2時(shí)會(huì)調(diào)用mutex的拷貝構(gòu)造函數(shù),而mutex的拷貝構(gòu)造函數(shù)是=delete的,也就是不允許拷貝構(gòu)造,所以編譯報(bào)錯(cuò)

當(dāng)你改成全局的mutex聲明時(shí),拷貝構(gòu)造TicketShop對(duì)象不會(huì)引發(fā)mutex對(duì)象的拷貝構(gòu)造,所以就沒(méi)問(wèn)題。


查看完整回答
反對(duì) 回復(fù) 2023-03-06
?
阿晨1998

TA貢獻(xiàn)2037條經(jīng)驗(yàn) 獲得超6個(gè)贊

這和mutex沒(méi)直接關(guān)系,你只是觸發(fā)對(duì)已經(jīng)刪除的函數(shù)的調(diào)用了。比如mutex的operator=

查看完整回答
反對(duì) 回復(fù) 2023-03-06
  • 2 回答
  • 0 關(guān)注
  • 178 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)