首頁 > 後端開發 > C++ > 為什麼我不能在沒有參數的建構函式宣告中使用括號?

為什麼我不能在沒有參數的建構函式宣告中使用括號?

Patricia Arquette
發布: 2024-11-20 20:02:21
原創
1070 人瀏覽過

Why Can't I Use Parentheses in my Constructor Declaration Without Arguments?

令人困惑的解析錯誤:解開構造函數參數中括號的難題

遇到神秘錯誤訊息「請求成員'function1 '時在「myObj」中,它是非類別類型「MyClass」 ()()'" 在嘗試編譯C 程式時,開發人員可能會發現自己正在思考這個令人困惑的解析錯誤背後的原因。有問題的源代碼包含一個類,其構造函數缺少任何參數,使用以下行聲明:

MyClass myObj();
登入後複製

執行編譯過程時,出現上述錯誤,表明成員函數“function1”不能可通過對象“ myObj」訪問,因為「myObj」被視為非類別類型。為了解決這個問題,程式碼修改為:

MyClass myObj;
登入後複製

這就提出了一個問題:建構函式宣告中缺少參數是否需要省略括號。雖然以前在 C 中使用過使用括號的空構造函數聲明,但語言標準採取了決定性的立場:像所提供的程式碼中那樣的歧義始終得到解決,有利於函數聲明。

值得注意的是在某些情況下,例如在 new 表達式中或構造值初始化的臨時物件時,允許使用空括號初始值設定項。然而,在沒有參數的建構函數宣告的情況下,標準堅決要求省略括號。這可以確保清晰度並防止因語法歧義而可能引起的潛在混亂。

以上是為什麼我不能在沒有參數的建構函式宣告中使用括號?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板