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 :
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 ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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]; } }
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.
Partager