Rumah > pembangunan bahagian belakang > C++ > Mengapa Menghidupkan Objek Blowfish Tanpa Argumen Menghasilkan Ralat \'tiada pembina lalai\' dan Bagaimana Ini Boleh Dibetulkan?

Mengapa Menghidupkan Objek Blowfish Tanpa Argumen Menghasilkan Ralat \'tiada pembina lalai\' dan Bagaimana Ini Boleh Dibetulkan?

Susan Sarandon
Lepaskan: 2024-11-27 06:40:13
asal
184 orang telah melayarinya

Why Does Instantiating a Blowfish Object Without Arguments Produce a

Ralat: "tiada pembina lalai wujud untuk kelas "Blowfish""

Soalan:

Apabila cuba membuat instantiate objek kelas Blowfish tanpa menyatakan secara jelas hujah pembina, pengkompil mengeluarkan mesej ralat, "tiada pembina lalai wujud untuk kelas "Blowfish"." Mengapa ini berlaku, dan bagaimanakah ia boleh diselesaikan?

Jawapan:

Ketiadaan pembina lalai dalam kelas Blowfish adalah mengikut reka bentuk. Apabila kelas mentakrifkan walaupun satu pembina, pengkompil tidak lagi mensintesis pembina lalai secara lalai.

Penyelesaian:

Untuk menyelesaikan ralat ini, anda mempunyai pilihan berikut :

  1. Sediakan pembina lalai: Tentukan pembina lalai yang tidak memerlukan sebarang hujah. Contohnya:
Blowfish() : _algorithm(CBC) {}
Salin selepas log masuk
  1. Nyatakan hujah apabila membuat instantiation objek: Nyatakan secara eksplisit nilai BlowfishAlgorithm yang dikehendaki apabila mencipta objek kelas Blowfish. Contohnya:
Blowfish blowfish(ECB);
Salin selepas log masuk
  1. Gunakan C 11's = lalai: Takrifkan pembina yang mengambil hujah, tetapi juga mengarahkan pengkompil untuk menjana pembina yang akan ada. dibuat jika anda tidak menentukannya. Ini dilakukan dengan sintaks lalai =. Contohnya:
class GameCryptography {
public:
    GameCryptography(BlofishAlgorithm);

    // Generate the default constructor
    GameCryptography() = default;
};
Salin selepas log masuk

Nota Tambahan:

Perhatikan bahawa istilah "ECB," "CBC," "CFB," dsb., adalah mod operasi untuk algoritma penyulitan dan bukannya algoritma penyulitan itu sendiri. Menggunakan istilah ini sebagai nama algoritma berpotensi membawa kepada salah faham dan ralat.

Atas ialah kandungan terperinci Mengapa Menghidupkan Objek Blowfish Tanpa Argumen Menghasilkan Ralat \'tiada pembina lalai\' dan Bagaimana Ini Boleh Dibetulkan?. 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