Me parece que este multiplica matrices, haber si te sirve!!
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
//DECLARACION DE LA CLASE****************************************************
class multiplica{
   private:
     int ren1;
     int col1;
     int ren2;
     int col2;
   public:
     multiplica();//int,int,int,int);
     void lee_matrices();    //int*,int*,int*,int*);
    // void asignadatos(int,int,int,int);
     void extraedatos(int*,int*,int*,int*);
     void lee_datosA(int**,int,int);
     void lee_datosB(int**,int,int);
     void multiplicacion(int**, int**, int**,int,int,int);
     void mostrar_ABC(int**, int**, int**,int,int,int);
};
//funcion principal "main"***************************************************
int main(){
 int r1, c1, r2, c2;
 int **mA, **mB, **mC;
 clrscr();
 multiplica mult;//(0,0,0,0);
// mult.asignadatos(&r1,&c1,&r2,&c2);
// mult.lee_matrices();
 mult.extraedatos(&r1,&c1,&r2,&c2);
 if(c1==r2){
    clrscr();
//creacion de las matrices
     mA=new int*[r1];
     for(int i=0; i<r1; i++)
       mA=new int[c1];
     mB=new int*[c1];
     for(i=0; i<c1; i++)
       mB=new int[c2];
     mC=new int*[r1];
     for(i=0; i<r1; i++)
       mC=new int[c2];
 mult.lee_datosA(mA, r1, c1);
 mult.lee_datosB(mB,c1,c2);
 mult.multiplicacion(mA, mB, mC,r1,c1,c2);
 mult.mostrar_ABC(mA, mB, mC,r1,c1,c2);
 }
 if(c1!=r2){
  clrscr();
  cout<<"Esas matrices no se pueden multiplicar"<<endl;
 }
    getch();
    return 0;
}
//FUNCIONES******************************************************************
multiplica::multiplica(){//int num1,int num2,int num3,int num4){
 lee_matrices();// asignadatos(num1,num2,num3,num4);
}
/*void multiplica::asignadatos(int num1,int num2,int num3,int num4){
   ren1=num1;
   col1=num2;
   ren2=num3;
   col2=num4;
} */
void multiplica::lee_matrices(){  //int *r1,int *c1,int *r2,int *c2){
// int ren1, col1, ren2, col2;
   cout<<"Dame el numero de renglones de la matriz A"<<endl;
   cin>>ren1;   // ren1=*r1;
   cout<<"Dame el numero de columnas de la matriz A"<<endl;
   cin>>col1;   // col1=*c1;
   cout<<"Dame el numero de renglones de la matriz B"<<endl;
   cin>>ren2;    //ren2=*r2;
   cout<<"Dame el numero de columnas de la matriz B"<<endl;
   cin>>col2;   // col2=*c2;
}
void multiplica::extraedatos(int *r1,int *c1,int *r2,int *c2){
   *r1=ren1;
   *c1=col1;
   *r2=ren2;
   *c2=col2;
}
void multiplica::lee_datosA(int **mA,int r1,int c1){
  int i,j;
   cout<<"Dame los datos de la matriz A"<<endl;
   for(i=0; i<r1; i++){
     for(j=0; j<c1; j++){
     cin>>mA[j]; clrscr();
     }
   }
}
void multiplica::lee_datosB(int **mB,int c1,int c2){
     int i,j;
   cout<<"Dame los datos de la matriz B"<<endl;
   for(i=0; i<c1; i++){
   for(j=0; j<c2; j++){
     cin>>mB[j]; clrscr();
   }
   }
}
void multiplica::multiplicacion(int **mA, int **mB, int **mC,int r1,int c1,int c2){
  int sum,i,j,l;
   for(i=0; i<r1; i++){
     for(l=0; l<c2; l++){   sum=0;
       for(j=0; j<c1; j++){
         sum+=mA[j]*mB[j][l];
   }
   mC[l]=sum;
      }
    }
}
void multiplica::mostrar_ABC(int **mA, int **mB, int **mC,int r1,int c1,int c2){
  int i,j;
  cout<<"Matriz A"<<endl<<endl;
      for(i=0; i<r1; i++){
   for(j=0; j<c1; j++){
     cout<<setw(4)<<mA[j];
   } cout<<endl<<endl;
      }         cout<<endl<<endl<<endl<<endl;
  cout<<"Matriz B"<<endl<<endl;
      for(i=0; i<c1; i++){
   for(j=0; j<c2; j++){
     cout<<setw(4)<<mB[j];
   }  cout<<endl<<endl;
      }
      cout<<endl<<endl<<endl;
  cout<<"Matriz C"<<endl<<endl;
    for(i=0; i<r1; i++){
      for(j=0; j<c2; j++){
      cout<<setw(4)<<mC[j];
       }cout<<endl<<endl;
    }
}