Saya memiliki fungsi anggota yang didefinisikan sebagai berikut:
Value JSONDeserializer::ParseValue(TDR type, const json_string& valueString);
Saat saya mengompilasi sumbernya, saya mendapatkan:
kesalahan: kualifikasi tambahan 'JSONDeserializer ::' pada anggota 'ParseValue'
Apa ini? Bagaimana cara menghapus kesalahan ini?
c++
g++
compiler-errors
prosseek
sumber
sumber
Ini berarti kelas disebutkan secara berlebihan dengan fungsi kelas. Coba hapus
JSONDeserializer::
sumber
Apakah Anda meletakkan baris ini di dalam deklarasi kelas? Dalam hal ini, Anda harus menghapus file
JSONDeserializer::
.sumber
Catatan yang layak untuk keterbacaan / pemeliharaan:
Anda dapat mempertahankan
JSONDeserializer::
qualifier dengan definisi dalam file implementasi Anda (* .cpp).Selama deklarasi di dalam kelas Anda (seperti yang disebutkan oleh orang lain) tidak memiliki kualifikasi, g ++ / gcc akan berfungsi dengan baik.
Sebagai contoh:
Di myFile.h:
Dan di myFile.cpp:
Ketika myFile.cpp mengimplementasikan metode dari banyak kelas, ada baiknya untuk mengetahui siapa milik siapa, hanya dengan melihat definisinya.
sumber
JSONDeserializer::
untuk file cpp (atau definisi secara umum) diperlukan. Jika tidak, Anda mendapatkan referensi yang tidak ditentukan. coliru.stacked-crooked.com/a/8f8a0cd3f9db6c94 coliru.stacked-crooked.com/a/6cd1efe94c09d521