@pluto9

Как исправить ошибку no matching function to call, в чем может быть ошибка?

После добавления последних 4х строк в классе связанных с запретом копирования, присваивания и перемещения стало выдавать ошибку: no matching function for call to 'Matrix::Matrix()'|

#include <iostream>

class Matrix
{

    public:
        void fillMatr();
        void printMatr() const;

    private:
        double matrix[3][4];

        Matrix(const Matrix&) = delete;
        Matrix& operator=(const Matrix&) = delete;
        Matrix(Matrix&&) = delete;
        Matrix& operator=(Matrix&&) = delete;
};

void Matrix::fillMatr(){
    for(int i{0}; i<3; ++i){
        for(int j{0}; j<4; ++j){
            std::cin>>matrix[i][j];
        }
    }
}

void Matrix::printMatr() const{
    for(int i{0}; i<3; ++i){
        for(int j{0}; j<4; ++j){
            std::cout<<matrix[i][j]<<'\t';
        }
        std::cout<<std::endl;
    }
}
int main()
{
    Matrix matr;
    matr.fillMatr();
    matr.printMatr();
    return 0;
}
  • Вопрос задан
  • 321 просмотр
Пригласить эксперта
Ответы на вопрос 1
AshBlade
@AshBlade
Просто хочу быть счастливым
В строке Matrix matr; в main неявно вызывается конструктор без аргументов. Но ты определил только конструкторы перемещения/копирования - пустого у тебя нет.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы