j'ai la classe graphe.h suivant :
J'arrive à coder le constructeur par défaut ainsi que le destructeur mais j'ai trouvé des problèmes avec le constructeur de copie. Svp aidez moi.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 class Graphe { private : vector<Noeud*> vecNoeuds; int numNoeud ; Lien** matLiens; public : Graphe(); Graphe(const Graphe&); ~Graphe(); int getNbNoeuds(); };
code constructeur par défaut :
code destructeur :Code:
1
2
3
4
5
6
7
8
9
10 Graphe::Graphe() { numNoeud = 0; matLiens = new Lien* [getNbNoeuds()]; for(int i=0; i<getNbNoeuds(); i++) { matLiens[i] = new Lien[getNbNoeuds()]; } }
Remarque :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Graphe::~Graphe() { for(int i=0 ; i < getNbNoeuds() ; i++) delete vecNoeuds[i]; vecNoeuds.clear(); for(int i = 0;i < getNbNoeuds() ;i++) {delete [] matLiens[i];} delete [] matLiens; }
Dans les deux codes précédant getNbNoeuds() c'est une méthode qui retourne les nombres des noeuds. Autrement, c'est la taille du vecteur vecNoeuds. Est il possible de l'utiliser dans les constructeurs et le destructeurs pour construire la matrice qui a pour taille (nbNoeuds*nbNoeuds)
Code:
1
2
3
4
5
6 int Graphe::getNbNoeuds() { return this->vecNoeuds.size(); }