1.闭包
含义:带有上下文的函数(有状态的函数)。函数时代码,状态就是一组变量,将代码与一组变量捆绑,就形成了闭包(比较像一个类)。
程序的闭包捆绑,必须发生在运行时
2.可调用对象
函数指针、具有operator成员函数的类对象(仿函数)、可被转换成函数指针的类对象、类成员函数指针或者类成员指针都可以被称为可调用对象
//函数指针
void func(int num,string name,int num2) {
cout << "num = " << num << ",name = " << name << endl;
}
using funcptr = void(*)(int,string,int);
class CC
{
public:
//具有operator成员函数的类对象(仿函数)重载()
void operator()(string str) {
cout << "仿函数 str = " << str << endl;
}
//可被转换成函数指针的类对象
operator funcptr() {
//return hh; //error
return ww;
}
//属于对象
void hh(