Salut,
je voudrais savoir est ce que c'est possible d'avoir une instruction switch à l'interieur de struct?
par exemple:
typedef struct cellule
{ int i;
switch(i)
{ case 1 : type1 v1;
case 2 : type2 v2;
case 3 : type3 v3;
}
cellule * next;
}
type1,type2,type3 sont des structures differentes que je vais utiliser suivant le cas
(j'utilise visual C++ 6.0 et il me dit "syntax error sur switch")
non mais tu peux eploiter les #ifdef ou #ifndef.
Sinon si tu as besoin de générer a la volée des structures de types différents, je te conseille de faire des recherches sur le design pattern factory.
non mais tu peux eploiter les #ifdef ou #ifndef.
Sinon si tu as besoin de générer a la volée des structures de types différents, je te conseille de faire des recherches sur le design pattern factory.
Il t'as répondu et en plus il t'a donné une solution, que demander de mieux?
en passant un simple #if,#else,#endif peut aussi faire l'affaire.
Pour devoir faire ca , il ya un problème de conception.
On pourrai te sortir de plien de choses, mais sans plus de détails, impossible de t'aider plus que ca.
Je me suis inscrit aujourd'hui à ce site car je suis "un zéro", je débute en C ++
Pour #ifdef ou #ifndef j'ai aucune idée!!
Pour mon problème est que je dois réaliser un système expert et on m'a proposé cette idée mais je n'arrive pas à la réaliser.
typedef struct cell
{ int i;
switch(i)
{ case 1 : tregle v1;
case 2 : tfait v2;
case 3 : taffirm v3;
}
cellule * next;
}cell;
typedef cell * pcell ;/* pointeur sur cellule puisqu'il y auras plusieurs fonctions communes aux différents types (ajout_cell,supprime_cell,…)*/
typedef enum tetat {vrai, faux, indetermine, inconnu } ;
typedef struct tfait
{ ch libelle;
tetat etat;
bool edit;
bool demand;
pcell deduit_de;
}tfait;
typedef struct taffirm
{ pcell fait;
tetat etat;
}taffirm;
typedef struct tregle
{ pcell cond;
taffirm action;
bool active;
}tregle;
J'ai essayé de faire chaque type tout seul :
typedef struct tfait
{ ch libelle;
tetat etat;
bool edit;
bool demand;
tregle deduit_de;/* j'ai un problème ici, la règle dont on a déduit le fait*/
tfait * next;
}tfait;
typedef struct taffirm
{ tfait fait;
tetat etat;
taffirm * next;
}taffirm;
typedef struct tregle
{ tfait cond;
taffirm action;
bool active;
tregle * next;
}tregle;
(le contenu de chaque structure nous a été imposé par le prof)
Merci pour votre compréhension
Salut,
Je veux réaliser un programme "système expert" (raisonnement en logique des propositions)
Ce programme doit me permettre de manipuler les faits et les règles (ajout, suppression, visualisation, impression dan un fichier) avec un moteur d'inférence en raisonnement "chaînage avant"
Merci, je vais les voir
je voudrais savoir comment faire pour resoudre le probleme de mes 2 stuctures dépendantes:
struct tregle contenant 1 champ struct de type tfait et vice versa
Tes structures ne peuvent pas fondamentalement s'inclure mutuellement, c'est une question de logique : exemple:
struct boite{
carton C
...};
struct carton{
boite B
...}
Si tu déclare ca :tu dit un carton contient une boite qui contient un carton qui contient une boite qui contient un carton ...
Et tu définit un enemble récursif de structures infini.
Tu as probablement une erreur de conception, ici par exemple Carton contient Boite car une boite rentre dans un carton;
struct Carton{
boite B;
...};
Par contre une boite ne contient pas de carton, mais elle peut y faire référence:
class Carton; //(j'indique que le carton est une classe)
struct boite{
Carton &C;
...
};
j'ai pensé qu'il y a quelque chose qui va pas
Merci pour ton explication
switch à l'interieur de struct
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
* Un wrapper C++ pour sqlite * Une alternative a boost units
* Un wrapper C++ pour sqlite * Une alternative a boost units
* Un wrapper C++ pour sqlite * Une alternative a boost units
* Un wrapper C++ pour sqlite * Une alternative a boost units