begin process at 2012 02 13 07:39:28
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Attributs de classes


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Attributs de classes

jeudi 30 octobre 2003 à 01:51:20 | Attributs de classes

jsonor

J'ai une question concernant les attributs de classes (donc C++).
J'ai deux classes A et B, avec la classe A possédant un attribut de type B et la classe B possédant un attribut de type A.
Et ça, ca passe pas..les compilos (que ce soit Visual C++ ou g++) ne l'acceptent pas...
Est-ce possible d'une part, et si oui, comment ??

Merci à tous ceux qui pourront m'aider !!!
jeudi 30 octobre 2003 à 02:32:15 | Re : Attributs de classes

gillig

C'est normal que ça ne passe pas, à mon avis. Mets-toi à la place du compilo ! Tu lui demandes de créer une classe A contenant une classe B contenant une classe A contenant...
Il ne peut pas s'en sortir !
Qu'est-ce que tu voulais faire exactement ?
Par contre, tu peux utiliser des pointeurs d'objets, voire des références...
jeudi 30 octobre 2003 à 11:09:04 | Re : Attributs de classes

jsonor

En fait, j'ai une classe qui définit des objets Requete, et une classe qui définit des objets Client.
J'ai besoin de connaitre le client concerné par chaque requete, et j'ai besoin de connaitre la requete(il ne peut y en avoir qu'une) traitée par chaque client.
J'utilise déjà des pointeurs. Voici l'exemple de mes classes :

Fichier CRequete.h :

#include "CClient.h"
class CRequete
{
public:
CRequete();
~CRequete();

private:
CClient* client;
};


Fichier CClient.h :

#include "CRequete.h"
class CClient
{
public:
CClient();
~CClient();

private:
CRequete* requete;
};


Merci d'avance!
jeudi 30 octobre 2003 à 11:30:58 | Re : Attributs de classes

jsonor

en fait, je viens de trouver la solution..le compilo ne fait pas de boucle comme tu paraissais le décrire mais en fait voilà ce qui se passe.
CRequete.cpp inclut CRequete.h, et CRequete.h inclut CClient.h.
D'autre part, CClient.cpp inclut CClient.h, mais CClient.h n'inclut pas à nouveau CRequete.h qui l'ai déjà, et donc il ne connait pas la classe CRequete dans CClient.h
En fait, c comme en C, il faut déclarer un prototype de chaque classe, ce qui revient à faire :


#include "CClient.h"
class CClient;

class CRequete
{
public:
CRequete();
~CRequete();

private:
CClient* client;
};



include "CRequete.h"
class CRequete

class CClient
{
public:
CClient();
~CClient();

private:
CRequete* requete;
};
jeudi 30 octobre 2003 à 11:31:26 | Re : Attributs de classes

jsonor

en fait, je viens de trouver la solution..le compilo ne fait pas de boucle comme tu paraissais le décrire mais en fait voilà ce qui se passe.
CRequete.cpp inclut CRequete.h, et CRequete.h inclut CClient.h.
D'autre part, CClient.cpp inclut CClient.h, mais CClient.h n'inclut pas à nouveau CRequete.h qui l'ai déjà, et donc il ne connait pas la classe CRequete dans CClient.h
En fait, c comme en C, il faut déclarer un prototype de chaque classe, ce qui revient à faire :


#include "CClient.h"
class CClient;

class CRequete
{
public:
CRequete();
~CRequete();

private:
CClient* client;
};



include "CRequete.h"
class CRequete;

class CClient
{
public:
CClient();
~CClient();

private:
CRequete* requete;
};
jeudi 30 octobre 2003 à 13:46:54 | Re : Attributs de classes

gillig

OK, j'avais pas bien compris la question, interessante au demeurant. Je me disais pour résumer que l'allocation d'un objet A contenant un objet B contenant un objet A etc. devait être compliquée, vu qu'on ne peut pas calculer sa taille, alors qu'avec des pointeurs ou des reférences on peut...


Cette discussion est classée dans : classe, classes, attribut, attributs, possédant


Répondre à ce message

Sujets en rapport avec ce message

iINCLUDE les header [ par psycomel ] Bonsoir, j'ai pleins classes, alors dans la normalité je mets la déclaration des attributs et méthodes dans un fichier header .h et la descrption de c URGENT : Classes, Pointeurs, et fonctions membres !! [ par guiguimac ] bonsoir ... mon pbm avance mais là je cale grave !j'ai une classe cA avec comme membres (pour l'instant tout en public) :une string "NOM"une fonction Héritage... [ par platon179 ] Bonjour, petit souci concernant les classes dérivées et l'accès aux fonctions membres. Je vous schématise simplement le problème : La classe Base poss Aide avec borland et 2 classes [ par cgarbite ] Developpeur_Fou Salut Voila j utilise Borland C++ Il y a la classe TForm1 qui se crée automatiquement. J ai crée le classe ELEVE avec une fo Instanciation de sous-classe [ par vecchio56 ] Bonjour J'ai la hiérarchie de classes suivante: A0, A1, A2, A3, A4... sont des sous-classes de A. J'ai besoin d'instancier une de ces sous-classes se Héritage [ par Aldarek ] Bonjour à tous j'ai un petit problème, j'ai du mal à faire le lien entre deux classes Quelqu'un pourrait il m'aider? Voici le code: Manger::Manger(int STL vector et classes abstraites, possibles ?? [ par RV2931 ] Bonjour,j'aurai voulu savoir si c'était possible de créer un STL::vector d'une classe abstraite ???  vector, ça j'y crois pas trop, mais vector  avec classe contenant un attribut de son propre type [ par Sk8yo ] Bonjour,voila je cherche a créer une classe contenant un attribut de cette meme classe,du genre:----------------------class A{  private:    A attribut l'attribut de fichier [ par salna ] salut,j'ai besoin  d'un programme en C++ qui permet  d'attribuer et d'obtenir des attributs sur les fichiers svp<str C'est ça un template ??? [ par wismerhill__ ] Bonjour, j'ai un probleme que je pense etre simple mais bon ...J'ai une classe A dont un attribut est actuelement un std::vectorUne classe B mere de C


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,406 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales