C++. Проблема с выводом класса матрица
Помогите, пожалуйста, написать метод для вывода матрицы, принадлежащей классу. Прикрепляю задание, если нужно. Создать два класса: матрица (int **) и координаты (две пары чисел). Описать функцию, которая меняет местами два элемента, положение которых задается координатами во втором классе, как дружественную. Предусмотреть проверку соответствия координат и размерности матрицы.
#include <iostream>
#include <ctime>
using namespace std;
class matrix
{
private:
int** a;
int n, m;
public:
matrix()
{
a = 0;
n = 0;
m = 0;
}
matrix(int N, int M)
{
n = N;
m = M;
a = new int* [n];
for (int i = 0; i < n; ++i)
{
a[i] = new int[m];
for (int j = 0; j < m; ++j) {
a[i][j] = rand()%10;
cout << a[i][j]<<" ";
}
cout << endl;
}
}
};
class coord {
private:
pair<int, int>cd;
public:
coord() {
cd=make_pair(0,0);
};
coord(int P, int L) {
int p = P;
int l = L;
cd = make_pair(p, l);
};
};
int main()
{
srand(time(0));
setlocale(LC_ALL, "Russian");
matrix arr(4, 4);
coord a(2, 4);
coord b(1, 3);
}