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

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

Linda Hamilton
Linda HamiltonOriginal
2024-11-30 14:13:16386Durchsuche

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();

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;

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

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!

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