考慮方法傳遞直列雙數組作爲方法參數
functionA (double[] arg)
我想通過一個雙陣列內聯,如
functionA({1.9,2.8})
,而不是先建立一個數組,然後通過它,像
double var[] = {1.0,2.0};
functionA(var);
這是可能的C++?聽起來很簡單,但我無法找到有關我的問題的提示,這讓我很疑惑:)。
考慮方法傳遞直列雙數組作爲方法參數
functionA (double[] arg)
我想通過一個雙陣列內聯,如
functionA({1.9,2.8})
,而不是先建立一個數組,然後通過它,像
double var[] = {1.0,2.0};
functionA(var);
這是可能的C++?聽起來很簡單,但我無法找到有關我的問題的提示,這讓我很疑惑:)。
您可以std::initializer_list<>
#include<vector>
void foo(const std::initializer_list<double>& d)
{ }
int main()
{
foo({1.0, 2.0});
return 0;
}
來編譯和下摹作品對我來說++與指定-std=c++0x
做到這一點。
這適用的C++ 0x
void functionA(double* arg){
//functionA
}
int main(){
functionA(new double[2]{1.0, 2.0});
//other code
return 0;
}
雖然你需要確保由新分配的內存中的泛函()被刪除,否則你就會有內存泄漏!
你可以在C++ 11中使用std::initializer_list
來完成。
void fun(std::initializer_list<double>);
// ...
fun({ 1., 2. });
你不能在C++ 03中完成它(或者它會涉及到足夠的樣板,它將不可行)。
in C++ ** method **是通過層次結構存在的虛擬成員函數 – DaddyM 2012-01-05 08:34:08