6.7Pointers to Functions

来源:互联网 发布:知乎上面的神回复 编辑:程序博客网 时间:2024/05/01 12:48
/*Something worth noticing here is that if I drop the const qualifier in ‘func’, I am still able to push_back the function ‘add’ and the other following functions to vector,yet it seems like those function also lose the const qualifer,because I am not allowed to use int literal as the parameters.*/// using func = int(*)(const int&, const int &);typedef int (*func)(const int&, const int&);int add(const int &A, const int &B){return A+B;}int subtract(const int &A, const int &B){return A-B;}int multiply(const int &A, const int &B){return A*B;}int divide(const int &A, const int &B){return A/B;}int main(int argc, char *argv[]){int ver = 1;vector<func> vec;vec.push_back(add);vec.push_back(subtract);vec.push_back(multiply);vec.push_back(divide);for (auto f : vec)cout << f(5,20) << endl;cout << "version "<< ver << endl;return 0;}

0 0