Disjonction dans une classe C++

Résolu
doudounico Messages postés 27 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 4 juin 2006 - 28 déc. 2005 à 22:05
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 - 29 déc. 2005 à 15:38
Bonsoir,

Je souhaiterai créer une classe présentant une disjonction, c'est à dire :

class Element
{
Soit un élément du type1
Soit un élément du type2
}

Par exemple, pour créer une liste récursive c'est soit une liste vide soit un couple (valeur, queue de la liste)

Merci de votre aide

12 réponses

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
29 déc. 2005 à 15:38
Ah oui, un oubli :)

class Date
{
public:
virtual void Afficher() const = 0;
};

class DateExacte: public Date
{
public:
virtual void Afficher() const;
}
3
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
28 déc. 2005 à 23:03
L'héritage bien sur

class List
{
List* queue;
T valeur;
}

class Vide extends List {}
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
29 déc. 2005 à 09:19
C'est une obligation que tu as de faire comme ca ou tu as un exo à résoudre par n'importe quels moyens ?

Shell
0
doudounico Messages postés 27 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 4 juin 2006
29 déc. 2005 à 10:36
Non, ce n'est pas une obligation (ce n'est pas pour un cours) mais j'essaie de développer comme on m'a appris à l'école...

Bonnes fêtes
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
29 déc. 2005 à 10:57
Tu veux faire quoi au juste ?

Shell
0
doudounico Messages postés 27 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 4 juin 2006
29 déc. 2005 à 12:46
J'ai une classe Date celle ci se compose ainsi

Soit c'est une date exacte et donc un triplet d'entiers
Soit c'est une période donc deux triplets$
soit c'est un intervalle : avant une date, entre deux dates, après une date
soit c'est une phrase (string)

et quelques autres trucs ...

Espérant avoir été clair
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
29 déc. 2005 à 13:35
Une classe Date eventuellement abstraite, et 3 sous-classes concrètes DateExacte, DatePedriode et DateIntervalle
0
doudounico Messages postés 27 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 4 juin 2006
29 déc. 2005 à 14:05
Je ne comprends pas trop ce que vous dites au sujet de classe abstraite.

Merci d'eclaircir un peu le concept
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
29 déc. 2005 à 14:09
C'est a dire que le Date ne sera pas forcément instanciable (pas d'objets de type Date). Ils font tous partie d'une sous-classe. Cela te permet d'omettre une implémentation pour certaines opérations.
Par exemple, si chaque type de date doit offrir une méthode Afficher, tu n'est pas obliger de la définir pour Date:
class Date
{
virtual void Afficher() const = 0;
};

class DateExacte
{
virtual void Afficher() const;
}

Et tu donnes le code pour DateExacte::Afficher, mais pas pour Date::Afficher
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
29 déc. 2005 à 15:27
Dans ce cas la autant crée une class par type de date tu crois pas ?
Ou alors si tes class on de nombreux points en commun, regroupe les en une class, puis fait hérité les classe fille de celle ci.
Tu n'auras plus qu'a redéfinir certaines méthodes par le polymorphisme.

Shell
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
29 déc. 2005 à 15:29
C'est bien ce que je dis, non? Une classe par type de date... Mais ce sont toutes des classes donc elles héritent d'une même classe
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
29 déc. 2005 à 15:37
T'as zappé l'héritage pour DateExacte d'ou ma remarque.
Sinon c'est ok.

Shell
0
Rejoignez-nous