C++ 構文エラーを解決する方法: 「'<' トークンの前に修飾されていない ID が必要です」

王林
リリース: 2023-08-26 22:46:52
オリジナル
7085 人が閲覧しました

如何解决C++语法错误:\'expected unqualified-id before \'<\' token\'?

C 構文エラーを解決する方法: 「'<' トークンの前に修飾されていない ID が必要です」

C言語の開発では、さまざまなエラーに遭遇することがよくあります。よくあるエラーの 1 つは、「'<' トークンの前に修飾されていない ID が必要です」です。このエラーは通常、識別子がどこかに欠落しているが、コンパイラが「<」記号を見つけたことを意味します。このエラーは、テンプレートまたは汎用プログラミングを使用する場合によく発生します。

この記事では、この構文エラーを特定して解決する方法について説明し、一般的なエラーの例をいくつか示します。

1. エラーの理由

通常、「'<' トークンの前に修飾されていない ID が必要です」エラーは、次の 2 つの一般的な問題によって発生します。テンプレート パラメーターが欠落しています

テンプレート プログラミングを使用する場合は、適切なパラメーターをテンプレートに渡す必要があります。このエラーは、テンプレートにパラメーターが渡されない場合、または間違ったパラメーターが渡された場合に発生します。
  1. セミコロンがありません
    ステートメントの末尾にセミコロンがない場合、このエラーが発生する場合があります。

  2. 2. エラーの例と解決策

例 1: テンプレート パラメーターが欠落しています

    template<class T>
    class MyClass {
    public:
        T value;
    };
      
    int main() {
        MyClass<int> obj;  // 正确用法:给模板传入适当的参数
        MyClass obj2;  // 错误用法:未给模板传入参数
        obj.value = 10;
        return 0;
    }
    ログイン後にコピー
  1. 上記の例の定義
  2. MyClass
クラスを使用する場合は、テンプレート パラメーター

を渡す必要があります。オブジェクト obj を作成するときに、適切なパラメータ をテンプレートに正常に渡しました。しかし、オブジェクト obj2 を作成するときに、パラメータをテンプレートに渡しませんでした。この場合、コンパイラはエラーを報告し、「'<' トークンの前に非修飾 ID が必要です」というプロンプトを表示します。このエラーを解決するには、 などの適切なテンプレート パラメーターを obj2 オブジェクトに渡すだけです。 例 1 の解決策:

MyClass<int> obj2;  // 给模板传入适当的参数
ログイン後にコピー

例 2: セミコロンの欠落

    #include <iostream>
      
    int main() {
        std::cout << "Hello World" << std::endl
        return 0;
    }
    ログイン後にコピー
  1. 上記の例の出力ステートメント
  2. std: :cout << "Hello World" << std::endl
の後にセミコロンはありません。このようにして、コンパイラは「'<' トークンの前に予期されていない非修飾 ID」エラーを表示します。このエラーを解決するには、ステートメントの末尾にセミコロンを追加するだけです。

例 2 の解決策:

std::cout << "Hello World" << std::endl;  // 添加分号
ログイン後にコピー
3. 概要

C の開発では、「'<' トークンの前に修飾されていない ID が予期されました」というエラーが文法的によく見られます。エラー。これは通常、テンプレート パラメーターが欠落しているか、セミコロンが欠落していることが原因で発生します。コードを注意深くチェックし、問題のある箇所に適切なパラメータまたはセミコロンを追加することで、このエラーを正常に解決できます。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!