Bagaimana untuk menyelesaikan ralat sintaks C++: 'id tidak layak dijangka sebelum token '<'?

王林
Lepaskan: 2023-08-26 22:46:52
asal
7085 orang telah melayarinya

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

Bagaimana untuk menyelesaikan ralat sintaks C++: 'id tidak layak dijangka sebelum '<'?

Dalam pembangunan C++, kita sering menghadapi pelbagai ralat. Salah satu ralat biasa ialah 'id-tidak layak dijangka sebelum '<'. Ralat ini biasanya bermakna pengecam hilang di suatu tempat, tetapi pengkompil menemui simbol '<'. Ralat ini biasa berlaku apabila menggunakan templat atau pengaturcaraan generik.

Dalam artikel ini, kami akan membincangkan cara mengenal pasti dan membetulkan ralat sintaks ini dan memberikan beberapa contoh ralat biasa. Punca ralat ke templat Masukkan parameter yang sesuai. Ralat ini akan berlaku jika tiada parameter dihantar ke templat, atau jika parameter yang salah dihantar.

Tiada koma bertitik

Dalam sesetengah kes, ralat ini berlaku jika koma bernoktah tidak ditambahkan pada akhir penyataan.

    2 Contoh ralat dan penyelesaian

  1. Contoh 1: Parameter templat hilang

  2. template<class T>
    class MyClass {
    public:
        T value;
    };
      
    int main() {
        MyClass<int> obj;  // 正确用法:给模板传入适当的参数
        MyClass obj2;  // 错误用法:未给模板传入参数
        obj.value = 10;
        return 0;
    }
    Salin selepas log masuk
  3. Dalam contoh di atas, apabila mentakrifkan kelas MyClass, anda perlu memberikannya parameter templat. Apabila mencipta objek obj, kami berjaya menghantar parameter <int> yang sesuai kepada templat. Tetapi apabila mencipta objek obj2, kami tidak menghantar parameter ke templat. Dalam kes ini, pengkompil akan melaporkan ralat dan menggesa 'id tidak layak dijangka sebelum '<'. Untuk menyelesaikan ralat ini, kami hanya perlu menghantar parameter templat yang sesuai ke objek obj2, seperti <int>.

Contoh 1 penyelesaian:

MyClass<int> obj2;  // 给模板传入适当的参数
Salin selepas log masuk
      Contoh 2: Tiada titik bertitik
    1. #include <iostream>
        
      int main() {
          std::cout << "Hello World" << std::endl
          return 0;
      }
      Salin selepas log masuk
    Dalam contoh di atas, dalam pernyataan output std::cout << Tiada koma bertitik selepas << std::endl. Dengan cara ini, pengkompil akan menggesa 'id tidak layak yang dijangkakan sebelum ralat '<'. Untuk menyelesaikan ralat ini, kami hanya menambah koma bertitik pada penghujung pernyataan.

    MyClass类时,需要给它传入一个模板参数<class T>。在创建对象obj时,我们成功地给模板传入了一个适当的参数<int>。但是在创建对象obj2时,我们未给模板传入参数。这样一来,编译器就会报错并提示'expected unqualified-id before '<' token'。解决这个错误,我们只需给obj2对象传入一个合适的模板参数,如<int>

    示例一解决方法:

    std::cout << "Hello World" << std::endl;  // 添加分号
    Salin selepas log masuk
    1. 示例二:缺少分号
    rrreee

    在上述示例中,在输出语句std::cout << "Hello World" << std::endlContoh 2 Penyelesaian:

    rrreee

    3 Ringkasan

    Dalam pembangunan C++, ralat 'tak layak yang dijangkakan sebelum '<' ialah ralat sintaks yang biasa. Ia biasanya disebabkan oleh kehilangan parameter templat atau koma bertitik hilang. Dengan menyemak kod dengan teliti dan menambah parameter atau koma bertitik yang sesuai di mana masalahnya, kami berjaya menyelesaikan ralat ini.

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan ralat sintaks C++: 'id tidak layak dijangka sebelum token '<'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!