Donnée membre constante d'une classe en c++

DRSBMM -  
 djo -
Bonsoir,
voici une classe en c++ :
class Test
{
const int cp;
char *ch;
public:
Test(int,char*);
Test(Test &);
void afficher();
~Test();
};
comment je peux définir la fonction membre par recopie Test(Test&) on tient compte de cp qui est constante ?
et merci.
Configuration: Windows XP
Firefox 1.5

4 réponses

  1. azureus33 Messages postés 51 Statut Membre 7
     
    je ne comprend pas ton problème ? plutot quel est le problème.
    1
    1. DRSBMM
       
      mon probleme ce que je n'arrive pas à définir les 2 constructeurs de cette classe,surtout le constructeur par recopie ,à cause de variable "cp" qui est constant...
      donc le probléme dans la définition des constructeurs.
      et merci........
      0
      1. azureus33 Messages postés 51 Statut Membre 7 > DRSBMM
         
        Ton problème doit se trouve à l'implémentaion de tes classe, je pense.
        pour initialisé une variable constant a la construction d'un classe il faut que tu utilise cette syntaxe.

        nomclasse::nomclasse (parmètre) :
        nomvariable (valeur),
        nomvariable (valeur)
        {
        pour une constant toujours avec une initialisation comme ci-dessus.
        }

        exemple d'utilisation :
        -------------------------------------------------------
        #include <iostream>

        using namespace std ;


        class test {
        private:
        const int cp ;
        int courant;
        string texte ;
        public:
        test() ;
        test(string,int);
        test(test&) ;
        ~test() {} ;
        } ;

        test::test(string l, int c):
        cp(c), courant(c+2), texte(l) {
        cout<<cp<<" | "<<courant<<" | "<<texte<<endl ;
        }

        test::test():
        cp(1), courant(2), texte("rien") {
        cout<<cp<<" | "<<courant<<" | "<<texte<<endl ;
        }

        test::test(test&c):
        cp(c.cp), courant(c.courant+2), texte(c.texte) {
        cout<<cp<<" | "<<courant<<" | "<<texte<<endl ;
        }

        int main (){
        test *t=new test ("azerty", 1) ;
        test *m=new test (*t) ;
        delete t ;
        delete m ;
        return 0 ;
        }
        --------------------------------------------------------------------------------
        J'espère avoir répondu à ton problème
        0
      2. DRSBMM > azureus33 Messages postés 51 Statut Membre
         
        merci beaucoup azureus33 ,et à tous ce qu'il m'est aidé.
        0
  2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Salut,
    Bah si c'est constant tu ne peux pas y toucher dans ton code sauf à la déclaration.
    0
  3. djo
     
    saluts tou monde,

    j'ai besoin de vous cher colègue sur se lien

    http://www.commentcamarche.net/forum/affich 10576457 scrip c besain aide modif
    0
  4. yves
     
    saluts tout monde

    j remarquer un gua sur forum laissais pas mal de message en programmation intéressent

    mais a par rament il a des souci
    avec son code

    moi je mi conais pas trop alors voici son lien

    http://www.commentcamarche.net/forum/affich 10576093 souci de ligne dans mon c
    -1