阅读量:4
在C++中,为了实现代码复用,我们可以使用函数指针、函数对象(也称为仿函数)或者C++11引入的lambda表达式。下面是这三种方法的简要介绍和示例:
- 函数指针
函数指针是一种指向函数的指针,可以用来调用其他函数。这种方法适用于具有相同参数列表和返回类型的函数。
#include
int add(int a, int b) {
return a + b;
}
int subtract(int a, int b) {
return a - b;
}
int main() {
int a = 5, b = 3;
// 使用函数指针调用add函数
int result1 = (*add)(a, b);
std::cout << "Add: " << result1 << std::endl;
// 使用函数指针调用subtract函数
int result2 = (*subtract)(a, b);
std::cout << "Subtract: " << result2 << std::endl;
return 0;
}
- 函数对象(仿函数)
函数对象是一个类,它重载了operator(),使其可以像函数一样被调用。这种方法适用于需要携带状态或者实现更复杂功能的函数。
#include
class Adder {
public:
int operator()(int a, int b) const {
return a + b;
}
};
class Subtractor {
public:
int operator()(int a, int b) const {
return a - b;
}
};
int main() {
int a = 5, b = 3;
// 使用函数对象调用add函数
Adder add;
int result1 = add(a, b);
std::cout << "Add: " << result1 << std::endl;
// 使用函数对象调用subtract函数
Subtractor subtract;
int result2 = subtract(a, b);
std::cout << "Subtract: " << result2 << std::endl;
return 0;
}
- Lambda表达式
Lambda表达式是一种简洁的创建匿名函数对象的方法。这种方法适用于简单的、不需要重复使用的函数。
#include
int main() {
int a = 5, b = 3;
// 使用lambda表达式调用add函数
auto add = [](int a, int b) { return a + b; };
int result1 = add(a, b);
std::cout << "Add: " << result1 << std::endl;
// 使用lambda表达式调用subtract函数
auto subtract = [](int a, int b) { return a - b; };
int result2 = subtract(a, b);
std::cout << "Subtract: " << result2 << std::endl;
return 0;
}
以上三种方法都可以实现代码复用,具体选择哪种方法取决于你的需求和编程风格。
以上就是关于“switch函数c++如何进行代码复用”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm