而不是做這個,有沒有辦法一次又一次地在C++中的參數中輸入相同的數據類型?
void myFunc(double, double, double, double, double, double, double);
有沒有辦法來限制相同的數據類型的用途和苗條下來?我知道有可能沒有更簡單的方法來做到這一點,但如果有的話,這將是很好的。
而不是做這個,有沒有辦法一次又一次地在C++中的參數中輸入相同的數據類型?
void myFunc(double, double, double, double, double, double, double);
有沒有辦法來限制相同的數據類型的用途和苗條下來?我知道有可能沒有更簡單的方法來做到這一點,但如果有的話,這將是很好的。
如果是聲明函數時,可以使用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;
}
輸出
一個:0
B:4.6
不,沒有。您必須明確列出所有參數,並且沒有爲連續參數重複相同類型的簡寫。
如果一個函數有很多參數,您可能需要更改它以將一個對象作爲參數。或者如果他們都是同一時間,你可以使用一個數組。
您可以使用vector
或list
甚至array
將它們分組並將它作爲參數傳遞。但是,您應該確定數據的順序,以便您可以在該方法中處理正確的數據。
沒有,沒有,這是強類型的編程語言之美。
如果參數是相關的,那麼如果你想傳遞數據,你可以將它們綁定到結構體(POD)中,或者如果你想操作它們,可以將它們綁定到類中。 – CreativeMind