„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Warum wirft C++ den Fehler „Für die Klasse ist kein Standardkonstruktor vorhanden“ aus und wie kann ich ihn beheben?

Warum wirft C++ den Fehler „Für die Klasse ist kein Standardkonstruktor vorhanden“ aus und wie kann ich ihn beheben?

Veröffentlicht am 22.12.2024
Durchsuche:909

Why Does C   Throw a \

Verständnis „Für die Klasse existiert kein Standardkonstruktor“-Fehler in C

Bei der Arbeit mit objektorientierter Programmierung in C ist das Auftreten von Fehlern im Zusammenhang mit Standardkonstruktoren keine Seltenheit. Dieser umfassende Leitfaden hilft Ihnen dabei, das Problem „Für die Klasse ist kein Standardkonstruktor vorhanden“ zu verstehen und zu lösen.

Problembeschreibung

Der Fehler „Für die Klasse ist kein Standardkonstruktor vorhanden“ tritt beim Versuch einer Instanziierung auf ein Objekt einer Klasse, ohne seinem Konstruktor die erforderlichen Argumente bereitzustellen. Ein Standardkonstruktor ist eine spezielle Mitgliedsfunktion, die ein Objekt mit seinen Standardwerten initialisiert, wenn keine Argumente angegeben werden.

Fehlerursache

Die häufigste Ursache für diesen Fehler ist, wenn eine Klasse beschädigt wurde mit einem oder mehreren Konstruktoren definiert, es fehlt jedoch ein Standardkonstruktor. Sobald eine Klasse einen Konstruktor definiert, generiert der Compiler nicht automatisch einen Standardkonstruktor.

Lösung

Um diesen Fehler zu beheben, haben Sie drei Möglichkeiten:

1 . Definieren Sie einen Standardkonstruktor:
Sie können einen Standardkonstruktor innerhalb der Klasse definieren, der keine Argumente akzeptiert, wie in der korrigierten Klasse unten zu sehen:

class GameCryptography
{
public:
    Blowfish _blowfish;
    GameCryptography();
    void Decrypt(unsigned char packet[]);
    void Encrypt(unsigned char packet[]);
    Blowfish Blowfish;
    void SetKey(unsigned char k[]);
    void SetIvs(unsigned char i1[],unsigned char i2[]);
};

2. Geben Sie Argumente für den vorhandenen Konstruktor an:
Beim Instanziieren des Objekts können Sie dem Konstruktor explizit die erforderlichen Argumente bereitstellen, sodass kein Standardkonstruktor erforderlich ist.

3. Verwenden Sie den Initialisierer „nullptr“:
Diese Option ist nur in C 20 anwendbar und ermöglicht es Ihnen, ein Objekt auf nullptr zu initialisieren, ohne explizit einen Standardkonstruktor zu definieren:

GameCryptography* gc = nullptr;

Zusätzliche Überlegungen

a. Angeben eines Algorithmus:
Es ist wichtig zu beachten, dass die Betriebsmodi wie ECB und CBC selbst nicht als Algorithmen betrachtet werden. Wenn man sie als solche bezeichnet, kann dies zu Missverständnissen führen.

b. Kompilierungszeit- und Laufzeitfehler:
Standardkonstruktorfehler werden normalerweise zur Kompilierungszeit erkannt. Dies steht im Gegensatz zu Laufzeitfehlern, die während der Programmausführung auftreten.

Wenn Sie die in diesem Handbuch vorgestellten Ursachen und Lösungsmethoden verstehen, können Sie bei der Arbeit mit Fehlern wie „Kein Standardkonstruktor existiert für die Klasse“ wirksam vorgehen C-Klassen.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3