C++Primer第五版 6.7节练习

来源:互联网 发布:ios 数组修饰 编辑:程序博客网 时间:2024/06/07 00:27

练习6.54:编写函数的声明,令其接收两个int形参并且返回类型也是int;然后声明一个vector对象,令其元素是指向该函数的指针。

练习 6.55:编写4个函数,分别对两个int值执行加、减、乘、除运算;在上一题创建的vector对象中保存这些函数的指针。

练习 6.56:调用上述vector对象的每个元素并输出其结果。

答:见云盘程序练习6.54-55-56.cpp。

练习6.4-55-56.cpp

/**练习6.54-55-56*2015/6/15*问题描述:*练习6.54:编写函数的声明,令其接收两个int形参并且返回类型也是int;然后声明一个vector对象,令其元素是指向该函数的指针。**练习 6.55:编写4个函数,分别对两个int值执行加、减、乘、除运算;在上一题创建的vector对象中保存这些函数的指针。**练习 6.56:调用上述vector对象的每个元素并输出其结果。**功能:完成上述练习*作者:Nick Feng*邮箱:nickgreen23@163.com**/#include <iostream>#include <vector>using namespace std;/*********练习6.54:编写函数的声明,令其接收两个int形参并且返回类型也是int;然后声明一个vector对象,令其元素是指向该函数的指针。****/int calc(int, int); typedef int (*pc)(int, int);vector<pc> vec;/*********练习 6.55:编写4个函数,分别对两个int值执行加、减、乘、除运算;在上一题创建的vector对象中保存这些函数的指针。****/int Add(int a, int b){    return a + b;}int Sub(int a, int b){    return a - b;}int Multiply(int a, int b) {    return a * b;}int Divide(int a, int b){    if (b != 0)    return a / b;}int main(){  /****练习 6.56:调用上述vector对象的每个元素并输出其结果。*******/  int x(1), y(1);  pc p1 = Add;  pc p2 = Sub;  pc p3 = Multiply;  pc p4 = Divide;  vec.push_back(p1);  vec.push_back(p2);  vec.push_back(p3);  vec.push_back(p4);  for (auto i = 0; i != vec.size(); ++i)    cout << "The reult is:" << (vec[i])(x, y) << endl;return 0;}
0 0
原创粉丝点击