有没有办法在c ++中的参数中反复输入相同的数据类型?

时间:2016-02-12 06:47:05

标签: c++ parameters

而不是这样做,

void myFunc(double, double, double, double, double, double, double);

有没有办法限制相同数据类型的使用并减少它?我知道可能没有更简单的方法可以做到这一点,但如果有的话会很好。

4 个答案:

答案 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)

您可以使用vectorlist甚至array对其进行分组,并将其作为参数传递。但是,您应该确定数据的顺序,以便您可以在方法中操作正确的数据。

答案 3 :(得分:0)

不,没有,这就是强类型编程语言的美妙。