嘗試使用類別時及其成員函數時,常會出現「request for member '...' in '...' which is of non-class type」錯誤。要理解其原因,分析觸發它的原始程式碼至關重要。
在提供的範例中,類別 Foo 擁有兩個建構子:一個不接受任何參數,另一個接受整數參數。當使用帶有參數的建構函數實例化物件時,執行將按預期進行。但是,使用無參構造函數會導致上述錯誤。
錯誤源自於不正確的語法。要修正它,應使用以下程式碼片段:
將上面的程式碼替換為:
編譯器錯誤地解釋語法
作為名為“foo2”的函數的聲明,返回類型為“Foo”。然而,這不是預期的功能。
修正語法後,可能會出現另一個可能的錯誤,讀取「重載 'Foo()' 的呼叫不明確」。發生這種情況是因為編譯器偵測到 Foo 的多個重載建構函式。若要解決此問題,請明確指定要使用的建構函數,如下所示:
以上是為什麼使用C類時會出現「request for member '...' in '...' that is of non-class type」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!