0
我正在編寫使用線程乘法矩陣的程序。我有填充動態int數組(不能使用向量)問題。C++填充動態數組int
CPP文件:HPP文件的
Matrix::Matrix(int n, int m)
{
mac_ = new int[n * m];
}
Matrix::Matrix(std::istream & is)
{
int tmp;
int i = 0;
is >> m_; //rows
is >> n_; //columns
Matrix(n_, m_); // using 1st constructor
while (is.peek() != EOF) {
is >> tmp;
mac_[i] = tmp; // debug stop here
i++;
}
}
部分:
private:
int n_; // columns
int m_; // rows
int *mac_;
從調試,我得到:
這0x0079f7b0 {N_ = 3 M_ = 2 MAC_ = 00000000 { }}
我知道我可以在第二個構造函數中編寫mac_ = new int(n_*m_);
,但我想知道爲什麼1st不起作用。
「Using 1st ..」創建一個臨時對象,而不是預期對象的分配 – Jonas
您可以使用委託構造函數 – Jonas
@Jonas他不能使用委託構造函數,因爲他首先必須使用'istream'爭取獲得施工參數。好的舊''init'函數在這裏更適合 – wasthishelpful