functionA (double[] arg)
私は
のように、functionA({1.9,2.8})
ではなく最初の配列を作成し、それを渡すように、double配列をインラインで通過したい考えてみましょう
double var[] = {1.0,2.0};
functionA(var);
これはC++で可能ですか?シンプルに聞こえますが、とにかく私の疑問に疑問を抱かせるようなヒントが見つかりませんでした:)
functionA (double[] arg)
私は
のように、functionA({1.9,2.8})
ではなく最初の配列を作成し、それを渡すように、double配列をインラインで通過したい考えてみましょう
double var[] = {1.0,2.0};
functionA(var);
これはC++で可能ですか?シンプルに聞こえますが、とにかく私の疑問に疑問を抱かせるようなヒントが見つかりませんでした:)
あなたはコンパイルし、指定された-std=c++0x
で++グラムの下で私の作品std::initializer_list<>
#include<vector>
void foo(const std::initializer_list<double>& d)
{ }
int main()
{
foo({1.0, 2.0});
return 0;
}
でこれを行うことができます。
はこれを使用すると、メモリリークが発生します
void functionA(double* arg){
//functionA
}
int main(){
functionA(new double[2]{1.0, 2.0});
//other code
return 0;
}
新しいによって割り当てられたメモリは、関数A()で削除されていることを確認する必要がありますが、C++ 0xの
、失敗で動作します!std::initializer_list
を使用してC++ 11で実行できます。
void fun(std::initializer_list<double>);
// ...
fun({ 1., 2. });
C++ 03では実行できません(または、実行可能でないほどの定型文が含まれます)。
**メソッド**は、階層を介して存在する仮想メンバ関数です。 – DaddyM