valarray とそのサイズを定義する 2 つの int を含むクラスを実装しようとしています。私の hpp ファイルは次のようになります。
class Matrix
{
public:
// Constructors
Matrix();
Matrix(int width, int height);
// Mutators
void setWidth(int width); // POST: width of the matrix is set
void setHeight(int height); // POST: height of the matrix is set
//void initVA(double width);
// Accessors
int getWidth(); // POST: Returns the number of columns in the matrix
int getHeight(); // POST: Returns the number of rows in the matrix
// Other Methods
//void printMatrix(const char* lbl, const std::valarray<double>& a);
private:
int width_;
int height_;
std::valarray<double> storage_;
};
ただし、次のようにコンストラクターで valarray を初期化しようとすると:
Matrix::Matrix(int width, int height)
{
width_ = width;
height_ = height;
storage_(width*height);
}
次のエラー メッセージが表示され続けます。
エラー C2064: 項は 1 つの引数を取る関数として評価されません
ドキュメントには、少なくとも 5 つの異なる方法で valarray を宣言できると書かれていますが、デフォルトのコンストラクターのみが機能します。私はどこでも見ましたが、有用な情報を見つけることができませんでした。どんな助けでも大歓迎です。