2016-03-30 9 views
2

ich diesen Code unten tue, eine Klasse zu schaffen und in der nächsten Zeile durch Parameter in zwei Zeilen Code senden:Wie instanziieren Klasse in einer Zeile Code der Funktionsaufruf?

InternalMessage im(call.get_id(), CSEV_CALL_NEW);    
send_call_event(im); 

Ich möchte etwas tun, wie die Verwendung von nur einer Linie, wie C#:

send_call_event(new InternalMessage(call.get_id(), CSEV_CALL_NEW)); 

Irgendwelche vorschlagen?

Antwort

3

Sie könnten

send_call_event(InternalMessage(call.get_id(), CSEV_CALL_NEW)); 

die eine temporäre InternalMessage konstruieren wird und es zu send_call_event() passieren.

Beachten Sie, dass eine benannte Variable benötigt wird, wenn der Parameter von einer nichtkonstanten Referenz übergeben wird.

+0

Es funktioniert, danke, warum brauche ich den Operator nicht neu zu benutzen? – Vitorlui

+0

In C++ erzeugt 'new' einen Zeiger, d. H.' InternalMessage * ', es scheint nicht mit dem Parametertyp von' send_call_event() 'übereinzustimmen. – songyuanyao

+0

Verstanden! Vielen Dank. – Vitorlui

Verwandte Themen