Objets imbriqués en c++
Fermé
pi€rre
Messages postés
76
Date d'inscription
mercredi 9 juin 2004
Statut
Membre
Dernière intervention
13 octobre 2005
-
23 juin 2004 à 09:25
marvinrouge - 23 juin 2004 à 11:56
marvinrouge - 23 juin 2004 à 11:56
A voir également:
- Objets imbriqués en c++
- Site pour vendre des objets d'occasion - Guide
- Ryanair objets interdits - Guide
- Les objets stratégie de groupe n'ont pas été appliqués car ils ont été refusés - Forum Réseau
- Telecharger jeux d'objets cachés gratuit version complete en francais - Télécharger - Puzzle & Réflexion
- Vous ne pouvez pas déplacer des objets en dehors de la feuille - Forum Excel
5 réponses
DaNot
Messages postés
221
Date d'inscription
mardi 30 septembre 2003
Statut
Membre
Dernière intervention
4 novembre 2005
163
23 juin 2004 à 10:10
23 juin 2004 à 10:10
Salut,
Petite remarque en passant : la classe est c_point ou C_point ?
DaNot
un Libre ouvert à la source...
Petite remarque en passant : la classe est c_point ou C_point ?
DaNot
un Libre ouvert à la source...
Salut Pierre, on n'a pas le code des constructeurs de tes classes, mais je suppose que ton constructeur c_point fait qqch du genre c_point(int a,int b) : x(a), y(b) {}
Je suppose que tu as déjà essayé
c_ligne::c_ligne(int nb_p)
{
c_point Point(entier1,entier2); // attention a bien définir avant entier1 et entier2
}
Sinon, tu peux faire un constructeur par defaut, comme par exemple
c_point():x(0), y(0) {}
puis tu te codes une fonction (dans le public de ta classe bien entendu)
void c_point::modif_point(int x_,int y_): x(x_), y(y_) {}
et tu peux faire ensuite
c_ligne::c_ligne(int nb_p)
{
c_point Point;
Point.modif_point(entier1, entier2);
}
c'est de la bidouille, mais ca devrait marcher normalement.
sinon, qqch de très grave : tu as oublié de coder des DESTRUCTEURS !
Surtout que dans ta classe c_ligne il y a un pointeur donc tu provoques une fuite de mémoire.
Pour la classe c_point tu fais juste un destructeur...qui ne fait rien (car il n'y a que des entiers) ~c_point() {}
Mais comme le dit DaNot, fait attention entre c_point et C_point
salut
Pom
Je suppose que tu as déjà essayé
c_ligne::c_ligne(int nb_p)
{
c_point Point(entier1,entier2); // attention a bien définir avant entier1 et entier2
}
Sinon, tu peux faire un constructeur par defaut, comme par exemple
c_point():x(0), y(0) {}
puis tu te codes une fonction (dans le public de ta classe bien entendu)
void c_point::modif_point(int x_,int y_): x(x_), y(y_) {}
et tu peux faire ensuite
c_ligne::c_ligne(int nb_p)
{
c_point Point;
Point.modif_point(entier1, entier2);
}
c'est de la bidouille, mais ca devrait marcher normalement.
sinon, qqch de très grave : tu as oublié de coder des DESTRUCTEURS !
Surtout que dans ta classe c_ligne il y a un pointeur donc tu provoques une fuite de mémoire.
Pour la classe c_point tu fais juste un destructeur...qui ne fait rien (car il n'y a que des entiers) ~c_point() {}
Mais comme le dit DaNot, fait attention entre c_point et C_point
salut
Pom
pi€rre
Messages postés
76
Date d'inscription
mercredi 9 juin 2004
Statut
Membre
Dernière intervention
13 octobre 2005
23 juin 2004 à 11:40
23 juin 2004 à 11:40
en fait j'ai bien codé mes destructeur, ici il n'y a qu'une partie du code.
Et merci pour ta bidouille mais ici ce n'etait que le plus simple des cas car j'ai une C_route :
merci, @+
pierre L.
Et merci pour ta bidouille mais ici ce n'etait que le plus simple des cas car j'ai une C_route :
class C_route { int taille; char nom[50]; C_ligne trajectoire; C_route(nb_points)//il fo que j'appelle le bon constructeur;
merci, @+
pierre L.
Re,
j'ai un peu de mal à te répondre car je ne sais pas ce que tu veux mettre dans tes constructeurs c_ligne et c_route.
Mon deux propositions étaient correctes ou pas (je n'ai pas pu les tester bien entendu) ?
Si une classe généralise une autre classe, il faut que tu utilises alors l'héritage (c'est tout l'intéret du C++ d'ailleurs)
pom
j'ai un peu de mal à te répondre car je ne sais pas ce que tu veux mettre dans tes constructeurs c_ligne et c_route.
Mon deux propositions étaient correctes ou pas (je n'ai pas pu les tester bien entendu) ?
Si une classe généralise une autre classe, il faut que tu utilises alors l'héritage (c'est tout l'intéret du C++ d'ailleurs)
pom
pi€rre
Messages postés
76
Date d'inscription
mercredi 9 juin 2004
Statut
Membre
Dernière intervention
13 octobre 2005
23 juin 2004 à 11:47
23 juin 2004 à 11:47
OK merci c'est ce que je vais faire
merci, @+
pierre L.
merci, @+
pierre L.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut:
class C_point
{
protected:
int x;
int y;
public:
C_point(int p_x, int p_y) { setX(p_x); setY(p_y); }
C_point() { x = 0; y = 0; }
int getX() { return x; }
int getY() { return y; }
void setX(int p_x) { x = p_x; }
void setY(int p_y ) { y = p_y; }
};
class C_ligne
{
C_point * tabpoint;
int nb_point;
C_ligne(int nb_p);
~C_ligne() {
if (tabpoint!=NULL) {
delete [] tanpoint;
}
}
};
C_ligne::C_ligne(int nb_p)
{
if (nb_p <=0)
nb_p = 1;
nb_point = nb_p;
tabpoint= new C_point[nb_point]
}
class C_point
{
protected:
int x;
int y;
public:
C_point(int p_x, int p_y) { setX(p_x); setY(p_y); }
C_point() { x = 0; y = 0; }
int getX() { return x; }
int getY() { return y; }
void setX(int p_x) { x = p_x; }
void setY(int p_y ) { y = p_y; }
};
class C_ligne
{
C_point * tabpoint;
int nb_point;
C_ligne(int nb_p);
~C_ligne() {
if (tabpoint!=NULL) {
delete [] tanpoint;
}
}
};
C_ligne::C_ligne(int nb_p)
{
if (nb_p <=0)
nb_p = 1;
nb_point = nb_p;
tabpoint= new C_point[nb_point]
}