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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

沒有參數(shù)的構(gòu)造函數(shù)上沒有括號是語言標準嗎?

沒有參數(shù)的構(gòu)造函數(shù)上沒有括號是語言標準嗎?

C++
慕勒3428872 2019-12-15 16:12:25
我正在使用g ++在Cygwin中編譯C ++程序,并且有一個其構(gòu)造函數(shù)沒有參數(shù)的類。我的臺詞是:MyClass myObj();myObj.function1();當嘗試編譯它時,我得到了消息:error: request for member 'function1' in 'myObj', which is of non-class type 'MyClass ()()'經(jīng)過一番研究,我發(fā)現(xiàn)解決方法是將第一行更改為MyClass myObj;我可以發(fā)誓我以前在C ++中用括號完成了空的構(gòu)造函數(shù)聲明。這可能是對我使用的編譯器的限制嗎?還是語言標準真的說不對沒有參數(shù)的構(gòu)造函數(shù)使用括號?
查看完整描述

3 回答

?
波斯汪

TA貢獻1811條經(jīng)驗 獲得超4個贊

盡管MyClass myObj();可以使用空的初始化程序或函數(shù)聲明將其解析為對象定義,但語言標準指定始終解決歧義,而傾向于函數(shù)聲明。在其他上下文中(例如,在new表達式中或構(gòu)造值初始化的臨時值時),可以使用空括號初始化程序


查看完整回答
反對 回復 2019-12-16
?
jeck貓

TA貢獻1909條經(jīng)驗 獲得超7個贊

這被稱為最令人煩惱的解析問題。當解析器看到


MyClass myObj();

它認為您正在聲明一個myObj沒有參數(shù)的函數(shù),并返回MyClass。


要解決此問題,請使用:


MyClass myObj;



查看完整回答
反對 回復 2019-12-16
?
一只名叫tom的貓

TA貢獻1906條經(jīng)驗 獲得超3個贊

我在C ++標準(第8.5.8節(jié))中發(fā)現(xiàn)了這一點:


一個其初始化程序是一組空括號(即())的對象,應進行值初始化。


[注意:由于初始化程序的語法不允許使用(),


X a ();

不是X類對象的聲明,而是不帶參數(shù)并返回X的函數(shù)的聲明。在某些其他初始化上下文(5.3.4、5.2.3、12.6.2)中允許使用()形式?!沧



查看完整回答
反對 回復 2019-12-16
  • 3 回答
  • 0 關(guān)注
  • 443 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

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