第十七章 特殊成员_成员函数指针数组

//成员函数指针数组
//假如我们将许多成员函数指针放在一个数组中,那么这个数组就叫成员函数指针数组
//该数组中的成员函数指针可以通过数组的下标来进行调用,并且可以用成员函数的内存地址来对数组的各个成员函数指针进行初始化
#include <iostream>
#include <string>
using namespace std;

class Paper
{
public:
	void read(){ cout<<"纸上面的字可以读"<<endl;}
	void write(){ cout<<"纸可以用来写字"<<endl;}
	void burn(){ cout<<"纸可以用来点火"<<endl;}
};
//定义一个Paper类型的函数指针p
typedef void (Paper::*p)();
int main()
{
	//定义了一个p指定的数组func
	p func[3]={&Paper::read,&Paper::write, &Paper::burn};
	Paper*pp=0;
	char choice[1];
	bool quit = false;
	while(quit==false)
	{
	     cout<<"(0)退出 (1)读取 (2)写入 (3)点火"<<endl;
		 cin>>choice;
		 if(choice[0] < '0' || choice[0] > '3')
		 {
		     cout<<"请输入0到3之间的数值"<<endl;
			 break;
		 }else if(choice[0] == '0')
		 {
		    quit = true;
		 }else
		 {
		    int n;
			pp = new Paper;
			n = atoi(choice);
			(pp->*func[n-1])();
			delete pp;
		 }
	}
    return 0;
}

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值