Porém ele está dando uns problemas que não faço idéia do pq.
Pelo que pude perceber, ele não está entendendo o tipo Matriz22 como um tipo de matriz e não consegue devolve-lo como retorno.Se Alguém puder me ajudar eu agradeço!
Erro: 14 C:\Documents and Settings\Gustavo Bodra\Meus documentos\facul\LTP I\Matriz\libMatriz.cpp conversion from `float (*)[2]' to non-scalar type `Matriz22' requested
libMatriz.h
class Matriz22{ private: float matriz22[2][2]; public: //construtor da classe Matriz22(); //metodos get e set Matriz22 getMatriz22(); void setMatriz22(Matriz22 matrizTemporaria); //Fim - metodos get e set //soma de matrizes Matriz22 somaMatriz(Matriz22 matrizSomada); //subtracao de matrizes Matriz22 subatraiMatriz(Matriz22 matrizSubtraida); //multiplicacao de matrizes Matriz22 multiplicaMatriz(Matriz22 matrizMultiplicada); //matriz transposta void transpoeMatriz(); //determinante de matriz 2x2 int determinanteMatriz(); };
libMatriz.cpp
#include "libMatriz.h" //construtor da classe Matriz22::Matriz22(){ for (int i=0; i < 2; i++){ for (int j=0; j < 2; j++){ matriz22[i][j] = 0; } } } //metodos get e set Matriz22 Matriz22::getMatriz22(){ return matriz22; } void Matriz22::setMatriz22(Matriz22 matrizTemporaria){ for (int i=0; i < 2; i++){ for (int j=0; j < 2; j++){ matriz22[i][j] = matrizTemporaria[i][j]; } } } //Fim - metodos get e set //soma de matrizes Matriz22 Matriz22::somaMatriz(Matriz22 matrizSomada){ Matriz22 auxiliar; Matriz22 matrizDaClasse = getMatriz22(); for (int i=0; i < 2; i++){ for (int j=0; j < 2; j++){ auxiliar[i][j] = matrizDaClasse[i][j] + matrizSomada[i][j]; } } return auxiliar; } //subtracao de matrizes Matriz22 Matriz22::subatraiMatriz(Matriz22 matrizSubtraida){ Matriz22 auxiliar; Matriz22 matrizDaClasse = getMatriz22(); for (int i=0; i < 2; i++){ for (int j=0; j < 2; j++){ auxiliar[i][j] = matrizDaClasse[i][j] - matrizSubtraida[i][j]; } } return auxiliar; } //multiplicacao de matrizes Matriz22 Matriz22::multiplicaMatriz(Matriz22 matrizMultiplicada){ Matriz22 auxiliar; Matriz22 matrizDaClasse = getMatriz22(); auxiliar[0][0] = (matrizDaClasse[0][0] * matrizMultiplicada[0][0]) + (matrizDaClasse[0][1] * matrizMultiplicada[1][0]); auxiliar[0][1] = (matrizDaClasse[0][0] * matrizMultiplicada[0][1]) + (matrizDaClasse[0][1] * matrizMultiplicada[1][1]); auxiliar[1][0] = (matrizDaClasse[1][0] * matrizMultiplicada[0][0]) + (matrizDaClasse[1][1] * matrizMultiplicada[1][0]); auxiliar[1][1] = (matrizDaClasse[1][0] * matrizMultiplicada[0][1]) + (matrizDaClasse[1][1] * matrizMultiplicada[1][1]); return auxiliar; } //matriz transposta void Matriz22::transpoeMatriz(){ Matriz22 auxiliar; Matriz22 matrizDaClasse = getMatriz22(); for (int i=0; i< 2; i++){ for (int j=0; j < 2; j++){ auxiliar[j][i] = matrizDaClasse[i][j]; } } setMatriz22(auxiliar); } //determinante de matriz 2x2 int Matriz22::determinanteMatriz(){ Matriz22 matrizDaClasse = getMatriz22(); int determinante = 0; determinante = (matrizDaClasse[0][0] * matrizDaClasse[1][1]) - (matrizDaClasse[0][1]*matrizDaClasse[1][0]); return determinante; }