【发布时间】:2022-01-11 03:35:13
【问题描述】:
下面的 C++ 代码是我想要做的简化版本,只是为了显示一般结构。
在“primary_function()”的每种情况下,结构都是相同的:
函数() + 2
唯一改变的是使用的函数(函数 1、2、3 或 4)。
有没有更有效的方法来做到这一点,这样我就不会在每种情况下都“重复”代码?谢谢。
#include <iostream>
using namespace std;
int function1(int a){
return a;
}
int function2(int b){
return b*b;
}
int function3(int c){
return c*c + c;
}
int function4(int d){
return 5*d;
}
int primary_function(int x, int selection){
switch(selection){
case(1):
return function1(x) + 2;
break;
case(2):
return function2(x) + 2;
break;
case(3):
return function3(x) + 2;
break;
case(4):
return function4(x) + 2;
break;
}
}
int main(){
cout << primary_function(6,1) << endl;
cout << primary_function(6,2) << endl;
cout << primary_function(6,3) << endl;
cout << primary_function(6,4) << endl;
return 0;
}
【问题讨论】:
-
使用类和虚拟成员?
-
您可以将指向函数的指针存储在数组中。
-
另一种方法是使用地图
-
您可以使用查找表:
<selection_id, function_ptr>。
标签: c++ function switch-statement