Heim  >  Artikel  >  Backend-Entwicklung  >  Warum erzeugt die Instanziierung eines Blowfish-Objekts ohne Argumente den Fehler „Kein Standardkonstruktor' und wie kann dieser behoben werden?

Warum erzeugt die Instanziierung eines Blowfish-Objekts ohne Argumente den Fehler „Kein Standardkonstruktor' und wie kann dieser behoben werden?

Susan Sarandon
Susan SarandonOriginal
2024-11-27 06:40:13116Durchsuche

Why Does Instantiating a Blowfish Object Without Arguments Produce a

Fehler: „Für die Klasse „Blowfish“ existiert kein Standardkonstruktor“

Frage:

Beim Versuch, ein Objekt der Blowfish-Klasse zu instanziieren, ohne explizit ein Konstruktorargument anzugeben, gibt der Compiler die Fehlermeldung aus: „Für die Klasse „Blowfish“ existiert kein Standardkonstruktor.“ Warum passiert das und wie kann es gelöst werden?

Antwort:

Das Fehlen eines Standardkonstruktors in der Blowfish-Klasse ist beabsichtigt. Wenn eine Klasse auch nur einen einzelnen Konstruktor definiert, synthetisiert der Compiler standardmäßig keinen Standardkonstruktor mehr.

Lösungen:

Um diesen Fehler zu beheben, haben Sie die folgenden Optionen :

  1. Geben Sie einen Standardkonstruktor an: Definieren Sie einen Standardkonstruktor, der dies nicht tut erfordern keine Argumente. Zum Beispiel:
Blowfish() : _algorithm(CBC) {}
  1. Geben Sie beim Instanziieren des Objekts ein Argument an:Geben Sie beim Erstellen eines Objekts der Blowfish-Klasse explizit den gewünschten BlowfishAlgorithm-Wert an. Zum Beispiel:
Blowfish blowfish(ECB);
  1. Verwenden Sie C 11's = Standard: Definieren Sie einen Konstruktor, der ein Argument akzeptiert, aber weisen Sie den Compiler auch an, den Konstruktor zu generieren, den er haben würde erstellt, wenn Sie noch keines definiert haben. Dies erfolgt mit der Standardsyntax =. Zum Beispiel:
class GameCryptography {
public:
    GameCryptography(BlofishAlgorithm);

    // Generate the default constructor
    GameCryptography() = default;
};

Zusätzliche Hinweise:

Beachten Sie, dass die Begriffe „EZB“, „CBC“, „CFB“ usw. gelten Betriebsarten für Verschlüsselungsalgorithmen und nicht für die Verschlüsselungsalgorithmen selbst. Die Verwendung dieser Begriffe als Algorithmusnamen könnte möglicherweise zu Missverständnissen und Fehlern führen.

Das obige ist der detaillierte Inhalt vonWarum erzeugt die Instanziierung eines Blowfish-Objekts ohne Argumente den Fehler „Kein Standardkonstruktor' und wie kann dieser behoben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn