J'ai un module C qui est créé par l'atelier en temps réel basé sur un modèle Simulink. Ce module propose trois fonctions publiques:Comment modéliser une interface de type OO pour les fonctions C?
int init();
int calc(double *inputarray, double *outputarray);
int term();
Basé sur le contenu du outputArray, je peux modéliser une classe appelée OutputThing.
Je souhaite intégrer ces fonctions dans une classe wrapper appelée WrapperModule. En ce moment j'ai une classe qui ressemble à ceci:
class WrapperModule {
public:
int initialize();
OutputThing calc(...);
int terminate();
};
Mon problème est, comment concevoir correctement une méthode d'emballage pour la fonction calc(). Je veux éviter pour créer une méthode avec un tableau/vecteur comme argument unique. Mais identifier le bon argument à partir du vecteur est délicat et je n'aime pas l'idée d'avoir une méthode avec 6 arguments ou plus. Dans son livre OOSC, Bertrand Meyer suggère l'utilisation de méthodes de mise en place. Quelque chose comme:
class WrapperModule {
public:
int initialize();
void set_foo(double f);
void set_bar(double b);
OutputThing calc();
int terminate();
};
Des idées? Je ne suis pas sûr quelle approche serait la meilleure.
Dans ma réponse, je suppose que init() est une fonction d'initialisation unique et term() est une fonction de terminaison ponctuelle et que calc() peut être appelée autant de fois entre init() et term(). Est-ce correct? –