#includeint add(int a,int b){ return a+b;}struct Obj{ int operator()(int a,int b) { return a+b; }};class OperatingNumbers{private: int num1; int num2;public: explicit OperatingNumbers(int a=1,int b=1):num1(a),num2(b){} ~OperatingNumbers(){}public: int getNumbyRtnFunction(int (*p)(int a,int b)) { return p(num1,num2); //利用回调函数来求和 } int getNumbyObj(Obj obj) { return obj(num1,num2); //利用函数对象,即仿函数来求和 } int getNumbyLambda() { return [](int a,int b)->int{ return a+b;}(num1,num2); //利用lambda表达式求和 }};int main(int argc, char* argv[]){ OperatingNumbers oNum(2,3); Obj o; std::cout< <