首頁 > 後端開發 > C++ > 主體

如何解決C++語法錯誤:'expected primary-expression before '.' token'?

王林
發布: 2023-08-26 19:43:45
原創
3138 人瀏覽過

如何解决C++语法错误:\'expected primary-expression before \'.\' token\'?

如何解決C 語法錯誤:'expected primary-expression before '.' token'?

在用C 寫程式時,我們有時會遇到各種各樣的語法錯誤。其中一個常見的錯誤是'expected primary-expression before '.' token'。當我們在程式碼中使用了不正確的語法來存取類別的成員時,編譯器就會報這個錯誤。

這個錯誤通常是由於以下幾種原因引起的:

  1. 錯誤地使用了點運算子(.)來存取一個非類別物件的成員變數或成員函數。
  2. 錯誤地使用了點運算子(.)來存取一個指針對象的成員變數或成員函數,而沒有使用箭頭運算子(->)。
  3. 當我們使用了一個未宣告或未定義的類別物件作為成員變數或成員函數的前綴時,編譯器無法辨識該物件。

以下是一些範例程式碼,用來說明如何解決這個錯誤:

範例1:

#include <iostream>
using namespace std;

int main() {
    int length = 10;
    cout.length;  // 错误:应该使用点运算符来访问一个类对象的成员
    return 0;
}
登入後複製

修復方式:將cout.length修改為cout<

範例2:

#include <iostream>
using namespace std;

class MyClass {
public:
    void printHello() {
        cout<<"Hello"<<endl;
    }
};

int main() {
    MyClass* myObject;
    myObject.printHello();  // 错误:应该使用箭头运算符来访问指针对象的成员
    return 0;
}
登入後複製

修復方式:將myObject.printHello()修改為myObject->printHello()。

範例3:

#include <iostream>
using namespace std;

class MyClass {
public:
    void printHello() {
        cout<<"Hello"<<endl;
    }
};

int main() {
    MyClass myObject;
    MyObject.printHello();  // 错误:使用了未定义的对象
    return 0;
}
登入後複製

修正方式:將MyObject.printHello()修改為myObject.printHello()。

透過上述修復方式,我們可以解決'expected primary-expression before '.' token'這個錯誤。需要注意的是,解決這個錯誤是要根據特定的程式碼情況進行修復,確保使用正確的語法來存取類別的成員。同時,在編寫程式碼時,我們也要仔細檢查和審查程式碼,避免這類常見的語法錯誤,以提高程式的品質和穩定性。

總結起來,'expected primary-expression before '.' token'錯誤是由於在對類別的成員進行存取時使用了錯誤的語法引起的。透過正確使用點運算符和箭頭運算符,聲明和定義類別對象,我們可以輕鬆解決這個錯誤。當我們遇到這類錯誤時,可以根據具體情況仔細檢查程式碼並進行修復,以確保程式的正常運作。

以上是如何解決C++語法錯誤:'expected primary-expression before '.' token'?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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