Pb de class

cs_bidules Messages postés 48 Date d'inscription samedi 31 mars 2001 Statut Membre Dernière intervention 11 avril 2004 - 2 avril 2002 à 17:36
cs_Cookie Messages postés 4 Date d'inscription dimanche 31 mars 2002 Statut Membre Dernière intervention 7 juillet 2002 - 3 avril 2002 à 12:19
bonjour,
ya un truc que je comprend pas :
g 2 class (bidon):
class chiffre
{
public :
int x,y;
chiffre(int a,int z); //le constructeur
};

class nbre
{
int o,p
public:
chiffre c(o,p);
nbre(int r,int t); //le constructeur
};

chiffre::chiffre(int a, int z)
{ x=a;y=z}
nbre::nbre(int r, int t);
{o=r;p=t}

int main
{
nbre n(5,6);
cout<<n.c.x;
}

quand je compile (g++)l'erreur suivante apparait :
essai.cc:21: invalid use of member `nbre::f1'
essai.cc:21: invalid use of member `nbre::f2'
essai.cc:21: invalid data member initiailization
essai.cc:21: use `=' to initialize static data members
essai.cc: In method `nbre::nbre (int, int)':
essai.cc:27: no matching function for call to `chiffre::chiffre ()'
essai.cc:9: candidates are: chiffre::chiffre (int, int)
essai.cc:13: chiffre::chiffre (const chiffre &)

alors que moi je veux juste declarer dans une class une autre class.
qqun peut m'aider?

3 réponses

cs_Cookie Messages postés 4 Date d'inscription dimanche 31 mars 2002 Statut Membre Dernière intervention 7 juillet 2002
3 avril 2002 à 11:32
#include

class chiffre
{
public :
int x,y;

chiffre() /*Constructeur par défaut (inutile car la class est tjs appellée avec des paramètres mais bon)*/
{
x=0;
y=0;
}
chiffre(int a,int z)
{
x=a;
y=z;
}
};

class nbre
{
public:
int o,p;
chiffre c

nbre() //Constructeur par défaut
{
o=0;
p=0;
chiffre d(o,p);
c=d;
}
nbre(int r,int t)
{
o=r;
p=t;
chiffre d(o,p);
c=d;
}
};

int main()
{
nbre n(5,6);
nbre j;
cout << n.c.x<<"\t"<<n.c.y<<"\n";
cout << j.c.x<<"\t"<<j.c.y<<"\n";
return 0;
}

P.S: ce prog est fé sous vc. Il est pas spécialement bien fé mais il fonctionne(On pourrait le faire avec des classes dérivées.)
sur ce slt.

-------------------------
reponde au message:
-------------------------

bonjour,
ya un truc que je comprend pas :
g 2 class (bidon):
class chiffre
{
public :
int x,y;
chiffre(int a,int z); //le constructeur
};

class nbre
{
int o,p
public:
chiffre c(o,p);
nbre(int r,int t); //le constructeur
};

chiffre::chiffre(int a, int z)
{ x=a;y=z}
nbre::nbre(int r, int t);
{o=r;p=t}

int main
{
nbre n(5,6);
cout<<n.c.x;
}

quand je compile (g++)l'erreur suivante apparait :
essai.cc:21: invalid use of member `nbre::f1'
essai.cc:21: invalid use of member `nbre::f2'
essai.cc:21: invalid data member initiailization
essai.cc:21: use `=' to initialize static data members
essai.cc: In method `nbre::nbre (int, int)':
essai.cc:27: no matching function for call to `chiffre::chiffre ()'
essai.cc:9: candidates are: chiffre::chiffre (int, int)
essai.cc:13: chiffre::chiffre (const chiffre &)

alors que moi je veux juste declarer dans une class une autre class.
qqun peut m'aider?
0
cs_bidules Messages postés 48 Date d'inscription samedi 31 mars 2001 Statut Membre Dernière intervention 11 avril 2004
3 avril 2002 à 12:04
C'est une question que je me posais car je suis debutant dans les classes.Si je le fais avec des classes herites il y a t-il toujours une certaine structure ds les donnees ?tout n'est pas mis dans la classe fille?
exemple : sans heritage, pour acceder a une donnees : n.c.x
exemple : avec heritage : n.x ????
je ne sais pas si ca fais ca ou pas mais si ca fais ca je ne vois pas l'interer de l'heritage si ce n'est l'amoncellement de donnees dans la classe et ne plus s'y retrouver.
enfin j'aimerais bien qu'on m'eclair sur l'heritage.
0
cs_Cookie Messages postés 4 Date d'inscription dimanche 31 mars 2002 Statut Membre Dernière intervention 7 juillet 2002
3 avril 2002 à 12:19
L'héritage de classe est très utilisé pour programmer des applications Windows et utiliser au mieux les fonctionnalités des MFC.
Ca evite d'avoir du code sur pas mal de pages aussi car s'il faut redefinir toutes les classes OULALALA.
C vrai que pour créer des programmes sous le "dos" on n'en n'a pas vraiment besoin et ca risque de compliqué le code.
au fait c bien n.x
voila c tout mais si tu veus apprendre a te servir des classes hérités achete toi un livre c complet et c souvent bien expliqué.
slt et bon appétit mdr
0
Rejoignez-nous