onjour!

Voilà, j'essaye de créer une classe de matrices avec la surcharge d'opérateurs mais je dois tester si les matrices sont d'un ordre compatible

Par exemple, je ne peux additionner que des matrices de même ordre (n x m)
ou quand je multiplie deux matrices entre-elles, l'ordre des matrices doit être (n x m) * (m x p)
Il faut donc que je teste avant d'effectuer le calcul et ceci se fait... pas bien! Voici la fonction que j'utilise :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
Matrice Matrice::operator+(const Matrice &matrice)
{
    Matrice resultat = *this;
    for (int i = 0; i < m_y; ++i)
        for (int j = 0; j < m_x; ++j)
            resultat.m_matrice[i][j] += matrice.m_matrice[i][j];
    return resultat;
}
Le problème dans ce code c'est qu'on renvoie un objet de la classe matrice dans tous les cas, alors qu'on ne devrait rien renvoyer si le calcul est impossible... Hum

Comment faire?
merci