為什麼禁止類別資料成員直接初始化語法
在C 中,類別資料成員不能使用( ) 大括號括起來的文法。考慮以下程式碼:
編譯失敗,並出現以下錯誤:
那麼,為什麼有這個限制?
根據早期的 C 提案和標準討論,該禁令的目的是防止解析歧義 。如果允許大括號括起來的初始化,編譯器可能會在以下情況下誤解聲明:
這裡,不清楚i(x) 是資料成員初始值設定項還是成員函數聲明,因為兩者都遵循相同的語法。
為了解決這個歧義,C 選擇了以下限制:
此決定可以避免解析問題並確保程式碼的清晰度。
以上是為什麼不能使用大括號括起來的語法來初始化類別資料成員?的詳細內容。更多資訊請關注PHP中文網其他相關文章!