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;
}
}