C++使用模板函数运行多个函数

 定义函数指针类型,然后使用模板函数,调用函数指针数组映射的实际函数。

#include <iostream>

//定义实际函数
void apple1() { std::cout << "函数一调用" << std::endl; }
void apple2() { std::cout << "函数二调用" << std::endl; }
void apple3() { std::cout << "函数三调用" << std::endl; }


//定义一个函数指针类型
typedef void (*AppleFunc)();

//定义一个模板函数,用于调用对应的apple函数
template<int N>
void callApple() {
	//使用静态断言来确保N在有效范围内
	static_assert(N >= 1 && N <= 3, "N 取值要在1至3之间");

	//使用一个函数指针数组来映射到实际函数
	static const AppleFunc appleFunc[] = { nullptr,apple1,apple2,apple3 };
	appleFunc[N]();
}


int main() {

	callApple<1>();
	callApple<2>();
	callApple<3>();

	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值