j'ai la classe graphe.h suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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();
};
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 constructeur par défaut :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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()]; 
    }
}
code destructeur :

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
 
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;   
 
}
Remarque :

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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
 
int Graphe::getNbNoeuds()
{
	return this->vecNoeuds.size();
}