Maison >développement back-end >C++ >Pourquoi « aucun constructeur par défaut n'existe pour la classe » apparaît-il en C lors de l'instanciation d'une classe avec une classe incorporée dépourvue de constructeur par défaut ?
"aucun constructeur par défaut n'existe pour la classe" Erreur en C
Lors de la tentative d'instancier une instance de la classe GameCryptography sans fournir d'argument constructeur , un message d'erreur IntelliSense indiquant qu'aucun constructeur par défaut n'existe pour la classe Blowfish est rencontré.
Cette erreur se produit car le Le constructeur GameCryptography tente d'initialiser une instance intégrée de Blowfish sans fournir d'argument de constructeur. Par défaut, C synthétise un constructeur pour une classe sans celui défini par l'utilisateur. Cependant, si la classe possède un constructeur défini par l'utilisateur, le constructeur par défaut n'est pas synthétisé.
Pour résoudre l'erreur, l'une des stratégies suivantes peut être implémentée :
Blowfish() : _algorithm(CBC) {}
GameCryptography(unsigned char key[]) : _blowfish(CBC) {}
class Blowfish { public: Blowfish(BlowfishAlgorithm algorithm) {} Blowfish() = default; };
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!