C++Primer第五版 6.7节练习

练习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;


}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值