Rumah > pembangunan bahagian belakang > C++ > Mengapakah \'tiada pembina lalai wujud untuk kelas\' Muncul dalam C Apabila Menghidupkan Kelas dengan Kelas Terbenam Tiada Pembina Lalai?

Mengapakah \'tiada pembina lalai wujud untuk kelas\' Muncul dalam C Apabila Menghidupkan Kelas dengan Kelas Terbenam Tiada Pembina Lalai?

Mary-Kate Olsen
Lepaskan: 2024-12-10 00:36:16
asal
832 orang telah melayarinya

Why Does

"tiada pembina lalai wujud untuk kelas" Ralat dalam C

Apabila cuba membuat instance kelas GameCryptography tanpa memberikan hujah pembina , mesej ralat IntelliSense yang menunjukkan bahawa tiada pembina lalai wujud untuk kelas Blowfish adalah dihadapi.

Ralat ini berlaku kerana pembina GameCryptography cuba untuk memulakan contoh terbenam Blowfish tanpa memberikan hujah pembina. Secara lalai, C mensintesis pembina untuk kelas tanpa kelas yang ditentukan pengguna. Walau bagaimanapun, jika kelas itu mempunyai pembina yang ditentukan pengguna, pembina lalai tidak disintesis.

Untuk menyelesaikan ralat, salah satu daripada strategi berikut boleh dilaksanakan:

  • Sediakan Pembina Lalai: Tentukan pembina lalai untuk kelas Blowfish yang memulakan medan algoritma dengan lalai nilai, seperti:
Blowfish() : _algorithm(CBC) {}
Salin selepas log masuk
  • Argumen Pembina Bekalan: Sediakan hujah pembina yang jelas apabila mencipta contoh kelas Blowfish, seperti:
GameCryptography(unsigned char key[]) : _blowfish(CBC) {}
Salin selepas log masuk
  • Gunakan C 11 Lalai Pembina: Dalam C 11 atau lebih baru, gunakan kata kunci lalai untuk mengarahkan pengkompil menjana pembina lalai yang akan disintesis secara automatik jika tiada pembina yang ditentukan pengguna wujud, seperti:
class Blowfish {
public:
    Blowfish(BlowfishAlgorithm algorithm) {}
    Blowfish() = default;
};
Salin selepas log masuk
  • Istilah Betul: Selain itu, pertimbangkan untuk menggunakan istilah yang betul. Mod operasi (cth., ECB, CBC) harus dirujuk sedemikian, dan bukannya dipanggil algoritma secara kolektif.

Atas ialah kandungan terperinci Mengapakah \'tiada pembina lalai wujud untuk kelas\' Muncul dalam C Apabila Menghidupkan Kelas dengan Kelas Terbenam Tiada Pembina Lalai?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan