tu peut même écire c.prod(a,b) si la fonction est déclaré comme tel :
class matrice
{
prod(matrice& a,matrice& b);
}
mais c´est pas terrible car ça n´a pas trop de sens vu que le produit est indépendant de c.
Et appeler a.prod(a,b) risque de faire des erreurs.
Donc il vaut mieux définir juste une fonction :
matrice prod(matrice& a,matrice& b);
Ne pas oublier de faire un bon destructeur pour la classe matrice et l´utiliser comme ça, même si c´est plus lent.
Si pour commencer tu te restraint à utiliser que des matrice de taille carré alors une solution consiste à écrire :
a*=b ou on stocke dans a le produit a*b ce qui a l´avantage d´économiser la mémoire et donc surtout le temps d´exécution puice que l´on ne cré pas d´objet intermédiaire : on stocke le résultat directement dans son emplacement finale (contrairement à la méthose précédente).