条件によっては、後で処理するNumericVectorまたはNumericMatrixのいずれかの新しい変数を宣言する必要があります。if ... elseステートメントを使用して、一般的なスコープで2つの異なるタイプの変数を宣言しますか?
if(condition)
{
NumericVector var(n_samples);
}else{
NumericMatrix var(n_samples, n_column);
}
if(condition)
{
#Further code to process var as NumericVector
}else{
#Further code to process var as NumericMatrix
}
return(var)
をしかし、我々はすべてのC++ variables go out scope at the end of the conditionalが、それは私が取得しています正確に何であることを知っている:私は、次のアプローチを試みてきました。
Line xxx: var was not declared in this scope
私は成功のないポインタを試しました。
Object *var = NULL;
if(condition)
{
var = new NumericVector Object(n_samples);
}else{
var = new NumericMatrix Object(n_samples, n_column);
}
解決策または回避策はありますか?
あなたの型は 'Object'から派生していますか? –
'new'式の仕組みを見てください。これは基本的な構文エラーのようです。 –
'Object * 'アプローチの問題点は何ですか? – Galik