Ciao a tutti,
sono nuovo quindi non so bene come funziona il forum, questa è la prima volta che mi confronto con il c++ e quindi ne so poco o niente, ho un problema con questo progetto:

implementare una Template Classtemplate<class T>class Matrix2D{}implementare tutte le operazioni possibili (trasposta, inversa, determinante, ...), l'operatore == e l'operatore !=, gli operatori + - * /In caso di operazione non ammessa, es determinante di una matrice non quadrata, generare eccezione (throw)Fare uso di memoria dinamica (new e delete)

Ho iniziato dichiarando la matrice, facendo l'inserimento dei dati e la visualizzazione delle matrici, fino a qui ci siamo ma poi sono in difficoltà con la somma matriciale.
Questo è ciò che ho fatto fino ad ora:

codice:
#include <stdio.h>
#include "stdafx.h"
#include <io.h>
#include <iostream>
#include <iomanip>
#include <ctype.h>
#include <math.h>
 
using namespace std;
 
int i, j;
int n;
int **matrice;
int righe, colonne;
int Somma=0;
 
void inserimento_matrice_dinamica(int **m, int r, int c)
{
       int i, j;
 
       for (i = 0; i<r; i++)
       for (j = 0; j<c; j++){
             cout << "Inserisci Elemento " <<"("<< i+1<< "," << j+1 << ")"<< " ";
             cin >> m[i][j];
       }
}
 
void visualizza_matrice_dinamica(int **m, int r, int c)
{
       int i, j;
 
       for (i = 0; i<r; i++)
       for (j = 0; j<c; j++)
             cout << "Elemento di Indice " << "(" << i + 1 << "," << j + 1 << ")" << " = " << m[i][j] << endl;
}
void SommaMatriciale(int **m, int r, int c)
{
       for (size_t i = 0; i < n; i++)
       {
            
       }
}
 
 
void main()
{
 
       cout << "Inserisci il numero delle matrici"<<endl;
       cin >> n;
      
       for (int z = 0;z < n; z++)
       {
 
 
             cout << "Inserisci il numero di righe della Matrice "<< z+1 <<endl;
             cin >> righe;
             cout << "Inserisci il numero di colonne della Matrice " << z+1 << endl;
             cin >> colonne;
 
             matrice = new int *[righe];
             for (i = 0; i < righe; i++)
                    matrice[i] = new int[colonne];
 
             cout << "Inserimento Matrice Dinamica " << endl;
             inserimento_matrice_dinamica(matrice, righe, colonne);
 
 
 
 
             cout << "Visualizzazione Matrice Dinamica " << endl;
             visualizza_matrice_dinamica(matrice, righe, colonne);
 
             system("PAUSE");
 
             //getchar();
 
             for (i = 0; i < righe; i++)
                    delete matrice[i];
 
             delete matrice;
       }
 
}

Potete darmi suggerimenti su come affrontare il problema e quelli che sicuramente mi troverò ad avere??

Grazie anticipatamente!!!