Constructeur de copie

Fermé
kochfet Messages postés 14 Date d'inscription vendredi 7 décembre 2012 Statut Membre Dernière intervention 4 avril 2013 - 30 mars 2013 à 12:31
j'ai la classe graphe.h suivant :

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 :

Graphe::Graphe()
{
numNoeud = 0;
matLiens = new Lien* [getNbNoeuds()];
for(int i=0; i<getNbNoeuds(); i++)
{
matLiens[i] = new Lien[getNbNoeuds()];
}
}
code destructeur :

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)

int Graphe::getNbNoeuds()
{
return this->vecNoeuds.size();
}