Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionEuh juste pour lever toute ambiguité, il faut absolument passer par des pointeurs dans le vecteur:
std::vector<classe_abstraite*> OK
std::vector<classe_abstraite> INCORRECT
Dsl, j'ai peut etre lu un peu vite.
#ifndef CORDOONNEE_H #define CORDOONNEE_H class Cordonnee { private : int element; public: Cordonnee(); Cordonnee(int x); ~Cordonnee(); int getelement(){return element;} void setelement(int m){element = m;} //ostream &operator<<(ostream &out ,Cordonnee &P1); }; #endif
#include #include "Cordoonnee.h" using namespace std ; Cordonnee::Cordonnee(){ element = 0 ; } Cordonnee::Cordonnee(int x){ setelement(x) ; } Cordonnee::~Cordonnee(){} //on surcharge l'opérateur << pour pouvoir afficher l'élement de l'objet ostream &operator<<(ostream& out , Cordonnee &P1){ out << P1.getelement(); }
#include #include <vector> #include "Cordoonnee.cpp" using namespace std; int main() { // Declare size of two dimensional array and initialize. vector< vector<Cordonnee> > vI2Matrix(3, vector<Cordonnee>(2,0)); // vector <Cordonnee> SS; Cordonnee P1(200) ,P2(10); vI2Matrix[0][0] = P1.getelement(); vI2Matrix[0][1] = P2.getelement(); vI2Matrix[1][0] = P1.getelement(); vI2Matrix[1][1] = P2.getelement(); vI2Matrix[2][0] = 20; vI2Matrix[2][1] = P2.getelement(); cout << "Loop by index:" << endl; int ii, jj; for(ii=0; ii < 3; ii++) { for(jj=0; jj < 2; jj++) { cout << vI2Matrix[ii][jj] << endl; } } return 0; }