Rumah >pembangunan bahagian belakang >C++ >Mengapa Kod Saya Membuang \'tiada pembina lalai wujud untuk kelas \'Blowfish\' \'?
Pembina Lalai Hilang untuk Kelas "Blowfish": Memahami Ralat
Ralat "tiada pembina lalai wujud untuk kelas "Blowfish"" timbul apabila cuba mencipta contoh kelas Blowfish tanpa memberikan sebarang hujah, walaupun telah menentukan pembina yang memerlukan Argumen BlowfishAlgorithm.
Menaakul Ralat
Secara lalai, apabila kelas tidak mempunyai pembina, pengkompil menjana pembina lalai yang tidak mengambil argumen. Walau bagaimanapun, apabila pembina bukan lalai ditakrifkan (iaitu, satu yang memerlukan hujah), pengkompil menganggap bahawa pengendalian pembina dikendalikan secara eksplisit oleh pembangun dan tidak lagi menjana pembina lalai secara automatik. Oleh itu, menyediakan hujah apabila mencipta tika kelas menjadi wajib.
Penyelesaian
Untuk menyelesaikan ralat ini, anda mempunyai beberapa pilihan:
Blowfish() = default;
Blowfish blowfish(BlowfishAlgorithm::CBC);
class GameCryptography { public: GameCryptography(BlofishAlgorithm); // Constructor with argument // Generate a default constructor by delegating to the compiler GameCryptography() = default; };
Nota Tambahan
Perlu diserlahkan bahawa ECB, CBC, CFB, dsb., mewakili mod operasi untuk algoritma penyulitan dan bukannya algoritma penyulitan itu sendiri. Walaupun ia tidak menjejaskan kompilasi, ralat semantik ini boleh mengelirukan pembaca kod.
Atas ialah kandungan terperinci Mengapa Kod Saya Membuang \'tiada pembina lalai wujud untuk kelas \'Blowfish\' \'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!