in einem beliebigen Programmiersprache ohne Zeiger mit Garbage Collector Itemporäres Objekt als Argument auf dem Stapel
DrawLine(new Vector(0, 0), new Vector(100, 100));
Aber in C tun kann ++ können wir nicht, wenn DrawLine
sind nicht verantwortlich für seine Argumente zu löschen, so dass die kürzester Weg DrawLine
mit zwei Vektoren (0,0)
und (100,100)
aufzurufen ist:
Vector v(0, 0);
Vector w(100, 100);
DrawLine(v, w);
gibt es eine Möglichkeit, dies zu einer einzigen Aussage zu machen? Vor allem, wenn v
und w
nur Argumente für diese einzelne Funktion sind und keine andere Funktion sie verwendet, scheint es ein bisschen ausführlich. Warum kann ich nicht tun, nur so etwas wie:
DrawLine(Vector(0, 0), Vector(100, 100));
"Warum kann ich nicht tun, nur so etwas wie:' DrawLine (Vector (0, 0), Vektor (100, 100)); '" Weil 'DrawLine' dumm genug ist lvalues oder den Compiler erfordern ist kaputt? – MikeCAT
Die Zeile [funktioniert] (https://ideone.com/isPOZG). Ein weiterer Fall, in dem * du * das nicht tun kann, ist, dass es in deinen Kodierungskonventionen verboten ist. – MikeCAT
@MikeCAT, Danke! Du hast Recht, es kompiliert! – Carucel