java - C++ NEW 对象作为参数(像 Java)

标签 java c++ class object coding-style

我正在用 C++ 编写一些东西,如果语言中存在类似的东西,我们一如既往地有一些“想法”......

我现在对作为参数传递的对象有疑问。

我通常做的是创建一个新对象,并将它的实例作为指针传递,如下所示:

mObject* obj1 = new mObject();
obj1->callback(the_callback_function);

function_that_needs_obj(obj1); // (or the reference, if I didn't instantiated a pointer).

没关系,工作正常,这个没有问题。但是,当我使用 Java 时,我曾经这样做:

function_that_needs_obj(new mObject(){
    public void onCallback(){
        // Custom code enters here....
    }
});

在 C++ 中有这样的用法吗?因为对于我需要创建的每个回调:一个 Extended class,或者一个 functionNamedVeryLongBecauseThereAreMany 必须写在代码的顶部,这种“混淆”很多代码...

而且,如果我调用一个 FUNCTION 回调,所有对象变量都不能通过 this 访问...

最佳答案

如果你的编译器支持c++11,你可以像这样使用lambda表达式:

function_that_needs_obj([]()
                        {
                           // Custom code enters here....
                        });

What is a lambda expression in C++11?

关于java - C++ NEW 对象作为参数(像 Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16432127/

相关文章:

java - 如何检测 Google 电子表格中的更改? java

java - Execute CommandA A% of time, CommandB B% of time, CommandA C% of time ----- Command Z% time 使用随机数

java - MainActivity 中弹出窗口中的 AutoCompleteTextView

java - 使用 jaxb2 maven 插件跳过 Java 文件中的生成...

c++ - 在文件中读取和存储整数

class - typescript 类 : "Overload signature is not compatible with function implementation"

c++ - 实现开关类型特征(使用 std::conditional_t 链调用)

c++ - VS 中的优化设置

c++ - 未在此范围内声明的函数和变量(c++)

html - 保存富字段后,Microsoft Sharepoint 将 "External Class"添加到我的 CSS