2016-03-30 2 views
2

関数呼び出しの1行のコードでクラスをインスタンス化する方法は?私は、このコードを怒鳴るを行うクラスを作成し、2行のコードでパラメータによって次の行に送信しています

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

私はC#のように、一つだけの行を使用してそのような何かをしたいと思います:

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

いずれかをお勧めしますか?

答えて

3

あなたは可能性があり、一時的なInternalMessageを構築し、send_call_event()に渡します

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

パラメータが非const参照によって渡されても機能しない場合、名前付き変数が必要であることに注意してください。

+0

私はオペレータnewを使う必要はありません。 – Vitorlui

+0

C++では、 'new'は' InternalMessage * 'というポインタを生成しますが、' send_call_event() 'のパラメータ型と一致しないようです。 – songyuanyao

+0

ありがとう。 – Vitorlui

関連する問題