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
Susan Sarandonasal
2024-11-27 06:40:13185semak imbas

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) {}
  1. Nyatakan hujah apabila membuat instantiation objek: Nyatakan secara eksplisit nilai BlowfishAlgorithm yang dikehendaki apabila mencipta objek kelas Blowfish. Contohnya:
Blowfish blowfish(ECB);
  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;
};

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!

Kenyataan:
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