constructeur de copie de base

constructeur de copie de base - C++ - Programmation

Marsh Posté le 19-01-2003 à 20:11:59    

comment fait-on lorsque on a écrit ses propres constructeurs de copies et qu'on a des classes en héritage. Je veux dire, comment faires pour appeler le constructeur de copie de la classe de base?? J'ai essayé ceci qui ne marche pas:
 
Class::Class(Class &model) :
ClassBase(model)
{
}
 
comment faire?

Reply

Marsh Posté le 19-01-2003 à 20:11:59   

Reply

Marsh Posté le 19-01-2003 à 20:19:53    

je comprends rien à ton ecriture mais bon
 
de maniere générale
 

Code :
  1. class Mere
  2. {};
  3. class Fille : Mere
  4. {
  5.   Fille() : Mere(){}; // par défaut
  6.   Fille(const Fille &girl) : Mere(girl) {}; // copie
  7.   Fille(const double &a) : Mere("un autre truc" ) {};
  8. };


 
bref, on peut faire ce qu'on veut. si tu 'nes pas sur de ce qu'il se passe, mais des jolis cout dans les constructeurs et destructeurs de tes classes
 

Reply

Marsh Posté le 19-01-2003 à 21:04:35    

++Taz a écrit :

je comprends rien à ton ecriture mais bon
 
de maniere générale
 

Code :
  1. class Mere
  2. {};
  3. class Fille : Mere
  4. {
  5.   Fille() : Mere(){}; // par défaut
  6.   Fille(const Fille &girl) : Mere(girl) {}; // copie
  7.   Fille(const double &a) : Mere("un autre truc" ) {};
  8. };


 
bref, on peut faire ce qu'on veut. si tu 'nes pas sur de ce qu'il se passe, mais des jolis cout dans les constructeurs et destructeurs de tes classes
 
 


 
Ouais escuse moi, j'ai mit directement le code du constructeur, j'ai pas préciser autant que toi.
Ton deuxième constructeur est le même que l'exemple que j'ai mit, mais ca marche pas! Et c'est quoi ces cout? ca fait quoi et on les met où exactement?
Une autre question, comment faire un constructeur de copie avec le mot clé const, chez moi il arrive pas a compiler, comme quoi c'est pas compatible. ex:
 

Code :
  1. //Ceci est la définition d'un constructeur de la class Exemple
  2. Exemple::Exemple(const Exemple &model)
  3. {
  4. var = model.GetVar();
  5. /*
  6. var est une variable membre privée de la classe et GetVar() est une fonction membre public de la classe qui renvoie la variable var. C'est ce genre de truc qui me fait des erreurs à la compilation si j'ajoute le mot clé const
  7. */
  8. }

Reply

Marsh Posté le 19-01-2003 à 21:30:11    

Faut déclarer const la méthode GetVar

Reply

Marsh Posté le 19-01-2003 à 21:34:31    

verdoux a écrit :

Faut déclarer const la méthode GetVar


 
ok! c'est bon j'ai trouvé pour mes constructeurs de copie, ca marche mnt merci pour l'aide!

Reply

Marsh Posté le 19-01-2003 à 21:50:07    

tu ferais bien de t'acheter un bouquin de C++ et d'apprendre les E/S du C++

Reply

Marsh Posté le 20-01-2003 à 01:27:56    

Bkadoum a écrit :


 
 

Code :
  1. //Ceci est la définition d'un constructeur de la class Exemple
  2. Exemple::Exemple(const Exemple &model)
  3. {
  4. var = model.GetVar();
  5. /*
  6. var est une variable membre privée de la classe et GetVar() est une fonction membre public de la classe qui renvoie la variable var. C'est ce genre de truc qui me fait des erreurs à la compilation si j'ajoute le mot clé const
  7. */
  8. }




 
erkkk  
http://forum.hardware.fr/forum2.ph [...] 86#t272543
 
on écrit  

Code :
  1. //Ceci est la définition d'un constructeur de la class Exemple
  2. Exemple::Exemple(const Exemple &model):var(model.GetVar()){}


 
si var est une variable d'instance de ta classe (ce que je subodore fortement étant donné qu'il y a un accesseur dessus).

Reply

Marsh Posté le 23-01-2003 à 22:52:44    

++Taz a écrit :

tu ferais bien de t'acheter un bouquin de C++ et d'apprendre les E/S du C++


 
j'ai deja, pourquoi cet remarque? Je sais c'est con de demander pourquoi une variable ne peux pas s'initialiser avec une constante mais bon, dans le code de mon programme c'était pas si clair, y a tellement de choses à penser en même temps!

Reply

Marsh Posté le 23-01-2003 à 23:00:43    

si tu as déjà un livre, peut etre est-il tant de le lire plus précisément ou d'en acheter un meilleur
 
quand à ma remarque est vient du "Et c'est quoi ces cout?"

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed