Heim >Backend-Entwicklung >C++ >Warum wird mein Klassenkonstruktor nicht aufgerufen?

Warum wird mein Klassenkonstruktor nicht aufgerufen?

Barbara Streisand
Barbara StreisandOriginal
2024-12-26 14:57:14909Durchsuche

Why Doesn't My Class Constructor Get Called?

Warum gibt es keinen Aufruf des Konstruktors?

Der bereitgestellte Code versucht, eine Instanz der Class-Klasse zu erstellen; Die aktuelle Implementierung führt jedoch zu unerwartetem Verhalten. Der Code definiert einen Konstruktor, der bei der Objekterstellung ausgeführt werden soll, die Ausgabe spiegelt dies jedoch nicht wider.

Bei näherer Betrachtung enthält der Code einen entscheidenden Fehler. Die Zeile Class object(); deklariert ein Objekt der Class-Klasse nicht korrekt. Stattdessen wird fälschlicherweise eine Funktion mit demselben Namen wie die Klasse deklariert.

Um dieses Problem zu beheben, sollte der Code geändert werden, um eine Instanz der Class-Klasse korrekt zu erstellen:

#include<iostream>
using namespace std;

class Class
{
public:
    Class()
    {
        cout << "default constructor called" << endl;
    }

    ~Class()
    {
        cout << "destructor called" << endl;
    }
};

int main()
{
    Class object; // Corrected line: Create an object of Class
}

Mit dieser Korrektur wird die erwartete Ausgabe erzeugt, da der Standardkonstruktor jetzt ordnungsgemäß bei der Objekterstellung aufgerufen wird.

Das obige ist der detaillierte Inhalt vonWarum wird mein Klassenkonstruktor nicht aufgerufen?. 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