C++函数的若干表达方式
#include <functional>
// 普通函数定义
int f1(int a, int b) {
return a+b;
}
// lambda函数
auto f2 = [](int a, int b)->int{
return a+b;
};
// function函数
std::function<int(int, int)> f3 = f2;
struct A {
// 类函数运算符重载
int operator()(int a, int b) {
return a+b;
}
// 类成员函数
int f4(int a, int b) {
return a+b;
}
};
// 函数指针
using F5 = int(*)(int, int);
// 函数引用
using F6 = int(&)(int, int);
int main() {
int sum = 0;
sum = f1(3, 4);
sum = f2(3, 4);
sum = f3(3, 4);
sum = A()(3, 4);
A a;
sum = std::bind(&A::f4, &a, 3, 4)();
F5 f5 = &f1;
sum = (*f5)(3, 4);
F6 f6 = f1;
sum = f6(3, 4);
return 0;
}