解決「錯誤:請求'...' 中的非類型成員'...'」
當在C 中遇到錯誤訊息「error: request for member '...' in '...' which is of non-class type,」時,通常表示物件有問題實例化和類別成員存取。為了解決這個問題,讓我們深入研究所提供的程式碼和錯誤的根本原因。
程式碼定義了一個有兩個建構子的 Foo 類別:一個不帶參數,一個帶一個參數。目的是使用兩個建構函數來建立 Foo 的物件。但是,嘗試使用無參構造函數建立物件時會發生錯誤。
經過檢查,問題出在以下行:
編譯器將此行解釋為名稱為「foo2」且傳回類型為「Foo」的函數宣告。但是,預期目的是使用預設建構函數宣告並實例化 Foo 類別的物件。要解決此問題,應修改語法如下:
透過簡單地刪除括號,編譯器現在可以正確地將這一行解釋為物件宣告和實例化,使用預設建構函式來初始化foo2 對象.
此修改允許程式碼按預期編譯和執行。現在可以使用兩個建構函式建立對象,並且可以毫無問題地存取成員函式。因此,請記住在物件宣告和實例化時使用正確的語法,以避免在 C 程式設計中出現此類錯誤。
以上是為什麼 C 語言中會出現「error: request for member '...' in '...' which is of non-class type」以及如何修復?的詳細內容。更多資訊請關注PHP中文網其他相關文章!