Language: C++

#include <iostream>
#include <cassert>
using namespace std;

class matrix {
	int row;
	int col;
	long long int **cells;
public:
	matrix(int row,int col);
	matrix* multiple(matrix *b);
	~matrix();
	int getCells(int r, int c);
	void setCells(int r, int c, int x);
	void input();
	void output();
private:
	long long int multiple_sum(matrix *a,matrix *b, int i, int j);
};

long long int matrix::getCells(int r, int c){
        return cells[r][c];
}
void matrix::setCells(int r, int c, long long int x){
        cells[r][c] = x;
}


matrix::matrix(int row, int col){
        this->row = row;
        this->col = col;
        cells = new int*[row];
        for(int i = 0; i < row; i++){
                cells[i] = new int[col];
        }
}
matrix* matrix::multiple(matrix *b){
	matrix* c = new matrix(this->row,b->col);
	for(int i = 0; i < c->row; i++){
		for(int j = 0; j < c->col; j++){
			c->setCells(i,j, multiple_sum(this,b,i,j));
		}
	}
	return c;
}
long long int matrix::multiple_sum(matrix *a,matrix *b, int i, int j){
	long long int sum = 0;
	assert(b->row == a->col);
	int m = a->col;
	for(int k = 0; k < m; k++){
		sum += a->getCells(i,k) * b->getCells(k, j);
	}
	return sum;
}


matrix::~matrix(){
        for(int i = 0; i < row; i++){
                delete[] cells[i];      
        }
        delete[] cells;
}

void matrix::input(){
	for(int i = 0; i < this->row; i++){
		for(int j = 0; j < this->col; j++){
			int data;
			cin >> data;
			this->setCells(i,j,data);
		}
	}
}
void matrix::output(){
	for(int i = 0; i < this->row; i++){
		for(int j = 0; j < this->col; j++){
			cout << this->getCells(i,j);
			if (j == this->col - 1){
				cout << endl;
			}else{
				cout << " ";
			}
		}
	}
}
int main(int argc, char *argv[]){
	int n,m,l;
	cin >> n >> m >> l;
	matrix *a = new matrix(n, m);
	a->input();
	matrix *b = new matrix(m, l);
	b->input();
	matrix *c = a->multiple(b);
	c->output();
	delete c;
	delete b;	
	delete a;
}

Compiler output:
a.cc:21:15: error: no declaration matches 'long long int matrix::getCells(int, int)'
   21 | long long int matrix::getCells(int r, int c){
      |               ^~~~~~
a.cc:13:13: note: candidate is: 'int matrix::getCells(int, int)'
   13 |         int getCells(int r, int c);
      |             ^~~~~~~~
a.cc:5:7: note: 'class matrix' defined here
    5 | class matrix {
      |       ^~~~~~
a.cc:24:6: error: no declaration matches 'void matrix::setCells(int, int, long long int)'
   24 | void matrix::setCells(int r, int c, long long int x){
      |      ^~~~~~
a.cc:14:14: note: candidate is: 'void matrix::setCells(int, int, int)'
   14 |         void setCells(int r, int c, int x);
      |              ^~~~~~~~
a.cc:5:7: note: 'class matrix' defined here
    5 | class matrix {
      |       ^~~~~~
a.cc: In constructor 'matrix::matrix(int, int)':
a.cc:32:17: error: cannot convert 'int**' to 'long long int**' in assignment
   32 |         cells = new int*[row];
      |                 ^~~~~~~~~~~~~
      |                 |
      |                 int**
a.cc:34:28: error: cannot convert 'int*' to 'long long int*' in assignment
   34 |                 cells[i] = new int[col];
      |                            ^~~~~~~~~~~~
      |                            |
      |                            int*