【问题标题】:How to instantiate class in one line code of function calling?如何在函数调用的一行代码中实例化类?
【发布时间】:2016-03-30 09:54:11
【问题描述】:

我在下面做这个代码,创建一个类并在两行代码中通过参数发送到下一行:

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

我想只用一行来做类似的事情,如 C#:

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

有什么建议吗?

【问题讨论】:

    标签: c++ function c++11 instantiation


    【解决方案1】:

    你可以

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

    这将构造一个临时的InternalMessage 并将其传递给send_call_event()

    请注意,如果参数是通过非常量引用传递的,它将不起作用,那么需要一个命名变量。

    【讨论】:

    • 它有效,谢谢,为什么我不需要使用 operator new?
    • c++中,new会创建一个指针,即InternalMessage*,好像和send_call_event()的参数类型不匹配。
    猜你喜欢
    • 2012-06-04
    • 1970-01-01
    • 2022-01-17
    • 2015-04-17
    • 1970-01-01
    • 2021-04-19
    • 1970-01-01
    • 2022-01-21
    • 2020-12-16
    相关资源
    最近更新 更多