Vector d'objet
Résolu/Fermé
DrCrow
Messages postés
387
Date d'inscription
lundi 9 novembre 2009
Statut
Membre
Dernière intervention
20 août 2014
-
25 janv. 2010 à 18:23
DrCrow Messages postés 387 Date d'inscription lundi 9 novembre 2009 Statut Membre Dernière intervention 20 août 2014 - 30 janv. 2010 à 09:42
DrCrow Messages postés 387 Date d'inscription lundi 9 novembre 2009 Statut Membre Dernière intervention 20 août 2014 - 30 janv. 2010 à 09:42
A voir également:
- Vector d'objet
- Vente objet occasion entre particulier - Guide
- Identifier un objet à partir d'une photo - Guide
- Objet interdit en cabine ryanair - Guide
- Ce document fait l'objet d'un trop grand nombre de modifications ✓ - Forum Word
- Combien de temps restent les empreintes digitales sur un objet - Forum Vos droits sur internet
5 réponses
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
661
25 janv. 2010 à 22:09
25 janv. 2010 à 22:09
un vector se redimensionne tout seul au besoin. un pushback(nouvel objet) devrait augmenter la taille de 1 (puisque nouvel objet est ajouté à la fin).
c.f. http://www.cplusplus.com/reference/vector/vector/
c.f. http://www.cplusplus.com/reference/vector/vector/
DrCrow
Messages postés
387
Date d'inscription
lundi 9 novembre 2009
Statut
Membre
Dernière intervention
20 août 2014
19
28 janv. 2010 à 23:59
28 janv. 2010 à 23:59
peut on faire ceci:
vector<MyClass> Objet(5);
Objet.push_back(MyClass);
vector<MyClass> Objet(5);
Objet.push_back(MyClass);
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
661
29 janv. 2010 à 22:09
29 janv. 2010 à 22:09
MyClass est une classe, pas un objet. La classe, c'est une sorte de type de variable.
C'est comme si tu fais un tableau :
int tab[10];
et ensuite que tu remplis la première case comme ceci :
tab[0] = int ;
aucune chance que ça marche.
par contre tu peux faire :
MyClass objetA, objetB;
vector<MyClass> v;
v.pushback(objetA);
v.pushback(objetB);
C'est comme si tu fais un tableau :
int tab[10];
et ensuite que tu remplis la première case comme ceci :
tab[0] = int ;
aucune chance que ça marche.
par contre tu peux faire :
MyClass objetA, objetB;
vector<MyClass> v;
v.pushback(objetA);
v.pushback(objetB);
DrCrow
Messages postés
387
Date d'inscription
lundi 9 novembre 2009
Statut
Membre
Dernière intervention
20 août 2014
19
29 janv. 2010 à 22:21
29 janv. 2010 à 22:21
:(, sa hurle encore,
no matching function for call to `std::vector<Employee, std::allocator<Employee> >::push_back(Employee (&)())'|
no matching function for call to `std::vector<Employee, std::allocator<Employee> >::push_back(Employee (&)())'|
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
661
29 janv. 2010 à 22:23
29 janv. 2010 à 22:23
ça fait un bail que j'ai plus touché à tout ça...
désolé, je vais voir.
désolé, je vais voir.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
661
29 janv. 2010 à 22:53
29 janv. 2010 à 22:53
Bon alors je ne sais pas trop comment tu déclares le tout et comment tu l'utilises.
Ceci étant, ce code compile et fonctionne chez moi :
fichier main.cpp
fichier MyClass.hpp
Ceci étant, ce code compile et fonctionne chez moi :
fichier main.cpp
//------------------------------------------------ #include <iostream> #include <vector> #include "MyClass.HPP" using namespace std; int main(int argc, char *argv[]) { vector<MyClass> vClass; vector<int> vInt; MyClass objetA, objetB; objetA.setA(18); objetB.setA(22); vInt.push_back(10); vClass.push_back(objetA); vClass.push_back(objetB); cout << "vInt : "<< endl; for(vector<int>::const_iterator i = vInt.begin(); i!=vInt.end() ; i++) { cout << *i << " "; } cout << " fin " << endl; cout << "vClass : "<< endl; for(vector<MyClass>::const_iterator i= vClass.begin();i!=vClass.end(); i++) { cout << (*i).getA() << " "; } cout << " fin " << endl; system("Pause"); }
fichier MyClass.hpp
#ifndef MYCLASS_HPP #define MYCLASS_HPP class MyClass { public: int getA(void) const { return a; } void setA(int b) { a = b; } private: int a; }; #endif
DrCrow
Messages postés
387
Date d'inscription
lundi 9 novembre 2009
Statut
Membre
Dernière intervention
20 août 2014
19
30 janv. 2010 à 09:42
30 janv. 2010 à 09:42
Parfait, Compile a merveille. ;D
Merci pour tous...
Merci pour tous...
28 janv. 2010 à 23:03