A tous les pros du C++ / POO

Kezal Messages postés 2 Date d'inscription jeudi 2 mai 2002 Statut Membre Dernière intervention 3 mai 2002 - 2 mai 2002 à 18:48
Kezal Messages postés 2 Date d'inscription jeudi 2 mai 2002 Statut Membre Dernière intervention 3 mai 2002 - 3 mai 2002 à 21:41
Salut,
J'ai un leger problème et j'aimerais y trouver une solution, alors je viens demander conseil ici ;)

Alors voila, j'ai une classe :
class CEngine
{
public:
....
CModel m_model[10]; // Models
CLog m_log; // Pour garder une trace de ce qui se passe : ecrit les infos dans un fichier
....
};

et une autre classe :
class CModel
{
public:
....
???? -> probleme !
....
};

En fait, je souhaiterais utilser le membres 'm_log' de la classe CEngine dans la classe CModel !
Mais comment faire ? Le passer en parametres a chaque fonctions ? Avec un membre statique dans la classe CModel ? une variale globale ? (beurk)
Mais connaissances sont limitées, alors si vous connaissez une solution ...

Merci d'avance !

A bientôt,
Kezal

2 réponses

Blustuff Messages postés 20 Date d'inscription jeudi 7 mars 2002 Statut Membre Dernière intervention 27 juin 2007
3 mai 2002 à 00:11
Si tu ne veux utiliser qu'un seul log pour chacune de tes instances, autant utiliser une variable globale ou statique (ce qui est exactement la même chose, du point de vue de la machine). Si tu préfere utiliser quand même des membres statiques dans tes classe, déclare dans une classe l'objet statique m_log, (ne pas oblier la définition CLog CEngine::m_log par la suite) et dans la classe CModel, utilise un membre statique CLog, que tu deefinira dans ton code par

CLog* CModel::m_log = &CEngine::m_log

Si j'ai bien compris ton programme, tu es obligé d'utiliser le log de manière globale.


Blustuff.
0
Kezal Messages postés 2 Date d'inscription jeudi 2 mai 2002 Statut Membre Dernière intervention 3 mai 2002
3 mai 2002 à 21:41
Merci pour ton aide, je pense que je vais faire comme ca oui, ca semble la methode la plus efficace.

A bientôt,
Kezal
0
Rejoignez-nous