Bonjour,
J'écris un programme de simulation (devant s'interfacer avec Matlab mais pas
aujourd'hui) et je cherche a décomposer en classes: certaines pour faire des
opérations sur les données, d'autres prenant ces données pour faire des
imports/exports sur fichier. En gros je voudrais savoir comment passer un
objet std::vector<double> d'une classe a une autre.
Pour l'instant une maquette de mon code ressemble à ca (ce n'est qu'une
maquette):
le corps de la methode membre pass_iodata(listy, select) contient:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 class MaClasseBase { public: MaClasseBase(std::vector<double> entrees, int dsize, int dnp); ~MaClasseBase(void); // MaClasseBase(const MaClasseBase &source); // MaClasseBase &operator=(const MaClasseBase &source); virtual bool entre(void); bool recalcule(void); // va appeler entre() // virtual bool recalcule(void); bool pass_iodata(std::vector<std::pair<double,double>> listy, int select); std::vector<double> valeurs; std::vector<double> newvaleurs; protected: std::vector<double> coeffs; int size; int np; };
(Vu la déclaration de la classe MaClasseBase (et celles qui suivront) je précise
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 int k, sel=1; std::pair<double, double> singleton; for (k=0; k<size; k++) { singleton.first = (double (k))*Ts; switch (sel) { case 1: singleton.second = newvaleurs[k]; // more case when complete break; } std::cout << singleton.second << " "; list_yh.push_back( singleton ); }
que je souhaiterais faire du polymorphisme avec un pointeur type de la classe de base
sur une classe dérivée.)
Y-aurait-il un moyen de se remplacer cette méthode par un constructeur copie de
l'objet std::vector<double> newvaleurs? Ou de spécifier aussi une méthode
exportant ce vecteur dans un fichier en prenant une reférence const en entrée?
Je suis juste à la recherche d'une version marchant, pas forcement optimisée,
mais sans trop réinventer. Je vous remercie d'avance
Partager