Heim > Backend-Entwicklung > C++ > C-Konstruktor-Syntax: Warum verursacht „Foo foo2();' einen Fehler?

C-Konstruktor-Syntax: Warum verursacht „Foo foo2();' einen Fehler?

Linda Hamilton
Freigeben: 2024-11-30 14:13:16
Original
334 Leute haben es durchsucht

C   Constructor Syntax: Why Does `Foo foo2();` Cause an Error?

Fehler: Requesting Member in Non-Class Type „Non-Class Type“

Beim Deklarieren von Objekten in C ist es wichtig, das zu verwenden Korrekte Syntax für beide Konstruktoren. Im bereitgestellten Code führt ein Versuch, ein Objekt mit dem Konstruktor ohne Argumente zu erstellen, zu einem Fehler:

Foo foo2();
Nach dem Login kopieren

Diese Syntax ist falsch, da sie einer Funktionsdeklaration ähnelt, was dazu führt, dass der Compiler sie als solche interpretiert . Die korrekte Syntax für die Objektdeklaration mit dem Konstruktor ohne Argumente lautet:

Foo foo2;
Nach dem Login kopieren

Durch Entfernen der Klammern erkennt der Compiler foo2 korrekt als Objekt der Klasse Foo.

Alternativ, wenn Wenn Sie der Übersichtlichkeit halber Klammern verwenden möchten, stellen Sie sicher, dass die Konstruktorargumente enthalten sind:

Foo foo2(1); // Explicitly pass the default argument of 1 to the no-argument constructor
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonC-Konstruktor-Syntax: Warum verursacht „Foo foo2();' einen Fehler?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage