data_
- это векторный не указатель объект , а nullptr
должен инициализировать указатель как нулевой указатель.
Вы можете '• присваивать переменным, не являющимся указателями, нулевые указатели.И C ++ не имеет никакой концепции нулевых значений или объектов.
Если вы хотите, чтобы вектор был правильно инициализирован, я предлагаю вам добавить список инициализатора конструктора:
SimpleMatrix::SimpleMatrix(SimpleMatrix &&other_mat)
: data_(std::move(other_mat.data_)) // Move the data from the other vector
, rows(other_mat.rows)
, cols(other_mat.cols)
{
// Clear the other matrix rows and cols
other_mat.rows = 0;
other_mat.cols = 0;
}
Или выможет полагаться на правило нуля и позволить сгенерированным компилятором конструкторам обрабатывать все для вас, что в этом случае должно происходить правильно:
class SimpleMatrix {
public:
SimpleMatrix(SimpleMatrix &&) = default;
// ...
};