begin process at 2012 05 29 08:55:03
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Débutant(e)

 > 

Héritage et composition


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

Héritage et composition

vendredi 12 novembre 2010 à 23:46:35 | Héritage et composition

naail

Bonjour,

j'ai un petit soucis, je vais essayer d'imager mon problème:

J'ai une classe mère A et A1 et A2 qui hérite de cette classe.

J'ai ensuite une classe mère B qui possède un attribut qui a comme type la classe A.Les classes B1 et B2 hérite de la classe B.

Mon soucis est que j'ai une méthode dans ma classe B1 et B2 dont l'attribut qui a comme type la classe A peut soit être de type A1 ou A2 suivant une certaine condition.

Comment puis-je gérer ceci?


Merci de vos réponses
samedi 13 novembre 2010 à 14:05:13 | Re : Héritage et composition

JulSoft

Membre Club
S' j'ai bien compris ton problème, tu es dans ce cas:

Code C/C++ :
class A{
   [...]
};

class A1 : public A{
   [...]
};

class A2 : public A{
   [...]
};


class B{
   [...]
};

class B1 : public B{
   public T f(A a);
   [...]
};

class B2 : public B{
   public T f(A a);
   [...]
};


et tu aimerais pouvoir écrire
Code C/C++ :
A1 a1();
A2 a2();

B1 b1();

b1.f(a1);
b1.f(a2);


Ca ressemble a un problème typique de polymorphisme...

Sauf erreur, il n'y a pas de solution directe, par contre c'est tout à fait possible au moyen d'un pointeur...

Dans ce cas, le prototype de f doit être:

Code C/C++ :
public T f(A* a);


qui peut recevori des pointeurs vers des objets de type A ou tout type héritant de A. Il faut par contre faire attention si tu veux récupérer l'objet de base (i.e. caster ton pointeru vers un A1* ou un A2*) que le pointeur pointe vers un objet du bon type...


Cette discussion est classée dans : type, classe, soucis, héritage, composition


Répondre à ce message

Sujets en rapport avec ce message

Template et héritage [ par ndubien ] Bonjour, Je souhaiterais savoir s'il est possible de créer une classe utilisant un template "restreint" à certaines classes. Je m'explique, je souha problème d'héritage sous C++ avec objet COM [ par sallenou ] Bonjour, J'ai un petit problème avec C++ et un objet COM (développer sous VB.NET). Dans cette objet COM, j'ai une classe B qui hérite d'un classe A c héritage d'une template classe comme vector [ par Urukai1 ] bonjourje suis un newbie en cpp, et j'ai fait beaucoup de javaje souhaite faire une classe qui herite par exemple de la classe vector avec template,le Recuperer le type d'un template [ par juju0169 ] Bonsoir! Désolé de vous déranger mais j'ai un petit soucis que je ne vois pas comment résoudre.Je vais essayer d'être le plus clair possible!VOilà j'a Access au type énum [ par azedsq ] Bonjour à tous,J'ai un problème avec le type énum. Je vous expliqueJ'ai une classe A avec un enum type1Fichier A.hClass A{public:   enum type1   {     Problème d'héritage de classes templates [ par emiaille ] Bonjour tout le monde,En ce moment je m'initie aux templates et j'ai donc créer une classe template matrix delaquelle je tire la classe vector par hér 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 Class derivée , Template ( POURQUOI ES-CE CI DIFFICILE) ??? [ par nawakator ] J'ai déjà posé cette question, mais je la repose car elle est essentiel pour mon projet!J'ai créer un template permettant de géré une liste chainé de template et l'héritage [ par imad_lol ] salut.dans mon programme je déclare 2 classe X et Y.les 2 classe sont des classes templates et Y hérite de X :template class X{ };//****************** passer en paramètre un type défini dans une classe vers une fonction d'une autre classe C++ [ par Johanboy ] Bonjour à tous, J'ai une question à laquelle je ne trouva pas de solution. Je veux pouvoir passer un paramètre dans une fonction de la classe C un


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,468 sec (3)

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