Aide compréhension d'un code
Bonjour tout le monde,
Je débute tout juste en programmation C++, et dans mes exercices, j’ai un code à analyser, mais je ne le comprends pas bien très bien… C’est pour cela que je viens vous demander de l’aide !
Il s’agit d’un code qui réalise le produit d’une matrice avec un vecteur (??).
On nous donne la définition des classes :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| #define TAILLE 3
class Vecteur {
private:
double vect[TAILLE];
public:
Vecteur(double t[TAILLE]) {
for (i = 0; i < TAILLE; i++)
vect[i] = t[i];
}
}
class Matrice {
private:
double mat[TAILLE][TAILLE];
public:
Matrice(double t[TAILLE][TAILLE]) {
int i, j;
for (i = 0; i < TAILLE; i++)
for (j = 0; j < TAILLE; j++)
mat[i][j] = t[i][j];
}
} |
Déjà, je ne comprends pas pourquoi les constructeurs sont implémentés dans la classe… c’est la première fois que je vois ça… Pourquoi pas dans le fichier .cpp comme d’habitude ?
C’est une question de rapidité ou de sécurité ? Mais pourquoi alors ?
Puis dans l’exercice, on nous pose deux questions (je vous mets mes réponses) :
1) Où déclarer la fonction Vecteur produit(Matrice mat, Vecteur vect) faisant le produit de mat par vect ? Comment faire pour que la fonction accède aux données membres des objets mat et vect ?
Je pense qu’ici il faut parler des liens d’amitiés ? Il faudrait donc déclarer la fonction produit dans la classe matrice par : friend Vecteur produit(Matrice mat, Vecteur vect); ?
2)On souhaite implémenter une fonction Vecteur produit(Vecteur vect) dans la classe matrice. Comment faire pour que la fonction puisse accéder aux données membres de l’objet
vect ?
De la même manière j’aurai dit de déclarer la fonction produit dans la classe matrice par : friend Vecteur produit(Vecteur vect) ;
D’après vous est ce que sont les bonnes réponses ? Je dois vous avouer que je n’ai pas très bien compris l’amitié en POO…
Je vous remercie par avance de votre aide,
A bientôt.