Ошибка "нет подходящей функции для вызова" часто возникает из-за того, что компилятор не может найти подходящую функцию для вызова в определенном контексте.
Чтобы исправить ошибку "нет подходящей функции для вызова", необходимо убедиться, что вы вызываете функцию корректно с правильным количеством и типом аргументов.
При добавлении строк в класс, запрещающих копирование и перемещение (например, операторы копирования и перемещения помечены как delete), компилятор может требовать явного определения конструктора по умолчанию, если ранее он был автоматически сгенерирован.
Поэтому для исправления ошибки, указывающей на отсутствие функции 'Matrix::Matrix()', вам нужно явно объявить конструктор без параметров в вашем классе Matrix. Примерно так:
```cpp
class Matrix {
public:
Matrix() = default; // Явное объявление конструктора по умолчанию
Matrix(const Matrix& other) = delete; // Отключение конструктора копирования
Matrix(Matrix&& other) = delete; // Отключение конструктора перемещения
// Остальной код класса
};
```
Это позволит компилятору создать конструктор по умолчанию и избежать ошибки.