Salut tout le monde,
J'ai un problème en ce qui concerne l'héritage. J'ai une classe mère CServer et une classe fille CBackup et j'ai besoin de convertir CServer en CBackup.
Est ce possible?
Merci d'avance.
Salut tout le monde,
J'ai un problème en ce qui concerne l'héritage. J'ai une classe mère CServer et une classe fille CBackup et j'ai besoin de convertir CServer en CBackup.
Est ce possible?
Merci d'avance.
Que veux-tu dire EXACTEMENT par "convertir CServer en CBackup" ?
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
En fait, j'ai une troisième classe (COther) qui contient la classe CServer. La classe COther contier une fonction qui selon le type du serveur (Master ou backup) doit pouvoir accèder aux membres de la classe CServer et de la classe CBackup.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Class COther { public: CServer Server; int ServerType; public: COther(CServer *server); int MyFunction(); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 int COther::MyFunction() { if(ServerType == 1) { //Some code } else { //Ici je dois pouvoir accèder à des membres de la classe fille } }
Comment puis je faire cela?
Si tu es sûr de ton coup, un simple static_cast< CBackup * >(Server) suffit.
Sinon, tu peux utiliser un dynamic_cast et vérifier que le pointeur retourné n'est pas NULL.
PS: Cela ressemble fort à une erreur de conception. Pourquoi ne pas utiliser une fonction membre virtuelle dans CServer et CBackup ?
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Je vais essayer la méthode que tu as proposé.
En fait, je peux éliminer la troisième classe, elle présente d'autres fonctionnaliés et c'est tout une autre histoire.
ça marche, merci.
Tu pourrais m'expliquer, c quoi au juste cette commande?
Partager