Heim >Backend-Entwicklung >C++ >Warum wird in C beim Instanziieren einer Klasse mit einer eingebetteten Klasse ohne Standardkonstruktor die Meldung „Für die Klasse existiert kein Standardkonstruktor' angezeigt?
"Kein Standardkonstruktor existiert für die Klasse" Fehler in C
Beim Versuch, eine Instanz der GameCryptography-Klasse zu instanziieren, ohne ein Konstruktorargument anzugeben , wird eine IntelliSense-Fehlermeldung angezeigt, die darauf hinweist, dass kein Standardkonstruktor für die Blowfish-Klasse vorhanden ist.
Dieser Fehler tritt auf, weil die Der GameCryptography-Konstruktor versucht, eine eingebettete Instanz von Blowfish zu initialisieren, ohne ein Konstruktorargument bereitzustellen. Standardmäßig synthetisiert C einen Konstruktor für eine Klasse ohne einen benutzerdefinierten. Wenn die Klasse jedoch über einen benutzerdefinierten Konstruktor verfügt, wird der Standardkonstruktor nicht synthetisiert.
Um den Fehler zu beheben, kann eine der folgenden Strategien implementiert werden:
Blowfish() : _algorithm(CBC) {}
GameCryptography(unsigned char key[]) : _blowfish(CBC) {}
class Blowfish { public: Blowfish(BlowfishAlgorithm algorithm) {} Blowfish() = default; };
Das obige ist der detaillierte Inhalt vonWarum wird in C beim Instanziieren einer Klasse mit einer eingebetteten Klasse ohne Standardkonstruktor die Meldung „Für die Klasse existiert kein Standardkonstruktor' angezeigt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!