ホームページ >バックエンド開発 >C++ >C++ 構文エラーを解決する方法: 「'.' トークンの前に主式が必要です」

C++ 構文エラーを解決する方法: 「'.' トークンの前に主式が必要です」

王林
王林オリジナル
2023-08-26 19:43:453154ブラウズ

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

C 構文エラー:「'.' トークンの前に主式が必要です」を解決するにはどうすればよいですか?

C でプログラムを作成すると、さまざまな構文エラーが発生することがあります。よくあるエラーの 1 つは、「'.' トークンの前に主式が必要です」です。コード内のクラスのメンバーにアクセスするために間違った構文を使用すると、コンパイラはこのエラーを報告します。

このエラーは通常、次の理由によって発生します。

  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;
}

Repair メソッド: MyObject.printHello() を myObject.printHello() に変更します。

上記の修復方法により、「'.' トークンの前にプライマリ式が必要です」エラーを解決できます。このエラーの解決策は、特定のコード状況に従ってエラーを修正し、クラスのメンバーにアクセスするために正しい構文が使用されるようにすることであることに注意してください。同時に、コードを記述するときは、プログラムの品質と安定性を向上させるために、このような一般的な文法エラーを回避するために、コードを注意深くチェックしてレビューする必要もあります。

要約すると、「'.' トークンの前にプライマリ式が必要です」エラーは、クラスのメンバーにアクセスするときに間違った構文を使用することが原因で発生します。このエラーは、ドット演算子と矢印演算子を正しく使用してクラス オブジェクトを宣言および定義することで簡単に解決できます。このようなエラーが発生した場合、コードを注意深くチェックし、特定の状況に応じて修復を行うことで、プログラムが正常に動作するようにすることができます。

以上がC++ 構文エラーを解決する方法: 「'.' トークンの前に主式が必要です」の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。