Bonjour !
Patrick Dupré a écrit :
> Je peux faire dans ma function
>
> MatDoub &A
> puis A = new MatDoub (2, 3)
>
> mais cela ne functionne pas
En supposant que tu parles bien d'une variable locale à une fonction, il
faut surtout que tu réfléchisses à où tu veux stocker cet objet :
– Si tu le veux dans la pile (création et destruction automatiques
quand tu rentres/sors du bloc),
MatDoub A(2, 3);
– Si tu veux l'allouer de façon statique (créé une fois pour toutes et
gardé pour toute la durée de vie du programme),
static MatDoub A(2, 3);
– Si tu veux l'allouer dynamiquement (tu deviens responsable de sa
destruction, et tu as une fuite mémoire si tu oublies de faire
« delete ») :
MatDoub *A = new MatDoub(2, 3);
Note que dans ce dernier cas A n'est pas un objet mais un pointeur,
tu accèdes donc aux méthodes avec A->methode() plutôt que
A.methode().
La notation « MatDoub &A » sert a créer une référence, qui est une sorte
d'alias pour un objet existant. Ça ne t'aide pas si tu veux définir un
nouvel objet.
À+,
Edgar.