而不是这样做,
void myFunc(double, double, double, double, double, double, double);
有没有办法限制相同数据类型的使用并减少它?我知道可能没有更简单的方法可以做到这一点,但如果有的话会很好。
答案 0 :(得分:2)
不,没有。您必须明确列出所有参数,并且没有为连续参数重复相同类型的简写。
如果某个函数有很多参数,您可能需要更改它以将对象作为参数。或者,如果它们同时发生,您可以使用数组。
答案 1 :(得分:2)
如果是在声明该功能时,您可以使用variadic template function。也许不是更少的打字,但更灵活。这会返回两倍。对于C ++ 11及更高版本。
double myFunc() {
return 0.0;
}
template<typename H, typename ...T> double myFunc(H head, T... tail) {
head += myFunc(tail...);
return head;
};
int main(int argc, char const *argv[])
{
auto a = myFunc();
std::cout << "a: " << a << std::endl;
auto b = myFunc(1.0, 1.1, 1.2, 1.3);
std::cout << "b: " << b << std::endl;
return 0;
}
输出
a:0
b:4.6
答案 2 :(得分:1)
您可以使用vector
或list
甚至array
对其进行分组,并将其作为参数传递。但是,您应该确定数据的顺序,以便您可以在方法中操作正确的数据。
答案 3 :(得分:0)
不,没有,这就是强类型编程语言的美妙。