Maison >développement back-end >C++ >Pourquoi l'instanciation d'un objet Blowfish sans arguments produit-elle une erreur « pas de constructeur par défaut » et comment cela peut-il être corrigé ?
Erreur : "aucun constructeur par défaut n'existe pour la classe "Blowfish""
Question :
Lorsque vous tentez d'instancier un objet de la classe Blowfish sans spécifier explicitement d'argument constructeur, le compilateur émet l'erreur message, "aucun constructeur par défaut n'existe pour la classe "Blowfish"." Pourquoi cela se produit-il et comment peut-il être résolu ?
Réponse :
L'absence d'un constructeur par défaut dans la classe Blowfish est intentionnelle. Lorsqu'une classe définit ne serait-ce qu'un seul constructeur, le compilateur ne synthétise plus par défaut un constructeur par défaut.
Solutions :
Pour résoudre cette erreur, vous disposez des options suivantes :
Blowfish() : _algorithm(CBC) {}
Blowfish blowfish(ECB);
class GameCryptography { public: GameCryptography(BlofishAlgorithm); // Generate the default constructor GameCryptography() = default; };
Remarques supplémentaires :
Notez que les termes « ECB », « CBC », « CFB », etc., sont modes de fonctionnement des algorithmes de chiffrement plutôt que des algorithmes de chiffrement eux-mêmes. L'utilisation de ces termes comme noms d'algorithmes pourrait potentiellement conduire à des malentendus et des erreurs.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!