您的位置:首页 > 编程语言 > C语言/C++

C++:可调用对象与function

2016-08-08 22:55 351 查看
编写一个简单的桌面计算器使其能处理二元运算

class Divide{
public:
int operator()(int a, int b)const{ return  a / b; }
};
//普通函数
int Add(int a, int b){ return a + b; }
int mult(int a, int b){ return a*b; }
//命名lambda函数对象
auto Mod = [](int a, int b){return a % b; };

map<string, function<int(int, int)>> binops = {
{ "+", Add },                    //函数指针
{ "-", std::minus<int>() },     //标准库函数对象
{ "/", Divide() },              //函数对象类
{ "*", bind(mult, _1, _2) },        //bind绑定的对象
{ "%", Mod },                   //命名lambda函数对象

};
string s;
int a, b;
while (cin >> a >> s >> b)
{
cout << " = " << binops[s](a, b) << endl;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: