Derzeit ich in meinem Code habeWie kann ich passiere ein initialisierten Objekt
vector_2 v1(1.0,2.0);
Frame.Draw(v1(2.0f,1.0f));
wo vector_2 eine Struktur mit einem Konstruktor, die 2 Doppelzimmer (Koordinaten) führt. Frame ist eine Instanz einer Klasse mit einer Funktion, die ein vector_2 als Parameter verwendet. Dies kompiliert einfach gut und so, wie ich es möchte.
aber wenn ich versuche, direkt, ohne einen Vektor Initialisierung vor dem Funktionsaufruf, z.B .:
Frame.Draw(vector_2 v1(2.0f,1.0f));
Der Compiler schlägt fehl mit der Fehlermeldung: erwartete Primärausdruck vor v1. Ich hatte gehofft, direkt innerhalb des Funktionsaufrufs zu initialisieren.
Ich frage mich, ob dies in C++ möglich ist, kann ich nicht die richtige Syntax kennen.
'Frame.Draw ({2.0f, 1.0f }); ' – AndyG
Das funktioniert. Vielen Dank. Warum die geschweiften Klammern? Damit ich meinen Fehler verstehen kann. Wäre dies auch möglich, wenn ein Objekt direkt in einem Konstruktor initialisiert wird, z. someClass :: someClass(): SomeOtherObject ({1.0.2.0f}) {...} – Majte
Es initialisiert direkt Ihre Struktur. Stellen Sie es sich als eine Möglichkeit vor, Argumente zu übergeben, die zum Konstruieren des vom Funktionsaufruf benötigten 'vector_2' verwendet werden können. – AndyG