lamdba表达式和方法引用 C++
时间: 2024-09-14 11:03:54 浏览: 39
Java8特性lambda表达式和方法引用
Lambda表达式和方法引用是C++11引入的重要特性,它们简化了函数对象的创建以及函数式的编程风格。
**Lambda表达式**:
Lambda是一种匿名函数,可以在需要函数对象的地方直接定义并使用。它通常包含一个或多个参数列表,紧接着是一个->操作符,后面跟着主体部分(即实际的函数体)。例如:
```cpp
auto lambda = [arg1, arg2](int x) { return x + arg1 * arg2; };
```
这里`lambda`就是一个接受整数`x`并返回`x`与`arg1`和`arg2`乘积的函数。
**方法引用**:
方法引用允许你在不暴露对象的情况下调用某个特定成员函数。它有两种形式:指向成员函数的对象和指针到成员函数。例如:
```cpp
class MyClass {
public:
void myMethod(int value) {
// ...
}
};
MyClass obj;
auto method_ref = &MyClass::myMethod; // 指向成员函数的指针
method_ref(obj, 42); // 直接通过引用调用方法
```
阅读全文