c++的NEW对象作为参数(和Java一样)

C++ NEW Object as parameter (Like Java)

本文关键字:Java 一样 参数 NEW 对象 c++      更新时间:2023-10-16

我正在用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必须写在代码的顶部,这种"混淆"了很多代码…

而且,所有对象变量,都不能通过this访问,如果我传递一个函数回调…

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

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

c++ 11中的lambda表达式是什么?

您可以在boost lambda中找到所需的内容!