c++的NEW对象作为参数(和Java一样)
C++ NEW Object as parameter (Like Java)
我正在用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中找到所需的内容!
相关文章:
- 是否有技术原因阻止 Java 中的 final C++ 像 const 一样严格?
- Java 是否像C++模板一样具有泛型推论?
- 为什么向量不支持 size 作为成员变量,就像 Java 类中的长度变量一样,而是函数 size()?
- Java,这是可能的吗?自动方法范围跟踪,就像C++中的宏一样
- 如何表达匿名方法覆盖,就像在 java 中使用 c++ 一样
- 就像Java中的指针C++一样
- Java是否有默认的复制构造函数(就像C++中一样)
- 我们有没有像c一样用java进行条件编译
- 在C++中,我可以像在Java中一样拥有一个接口变量吗
- 如何以毫秒为单位获取自 1970 年以来的当前时间戳,就像 Java 一样
- C++:像在 Java 中一样将接口作为参数传递
- 在 c++ 中是否有像 timer 和 timertask 这样的东西,就像 java 一样
- C++像枚举头编译器错误一样的Java
- 我们是否可以像jquery一样在C++/Java中使用链式样式设置器
- 有没有一种更简单的方法可以像在java中使用包一样在C++中重用代码?制作头文件比较复杂
- 是否可以像Java一样在VM中运行,从而使C++平台独立
- C++中的分段错误是否可以像在 Java 中处理 NullPointerExceptions 一样处理
- c++的NEW对象作为参数(和Java一样)
- Java是否像c++一样有未定义的行为?
- 接口与c++中的java一样