Declarer un vecteur d'objet et l'utiliser(urg

Fermé
warry Messages postés 1 Date d'inscription jeudi 27 mars 2008 Statut Membre Dernière intervention 27 mars 2008 - 27 mars 2008 à 07:01
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 31 mars 2008 à 08:47
Bonjour,
voila j'ai un ptit souci j'aimerai savoir si possible de m'aider pour mon exam :

en fait je dois entre autres creer une classe agenda et une classe page; dans la classe agenda il me faut un vecteur d'objet page, est ce possible..... si oui comment faire please

et ensuite comment acceder a un objet mis dans le vectreur

un grand merci ça urge.....
A voir également:

6 réponses

Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
28 mars 2008 à 11:15
non, non, il faut utiliser :
"agenda".PA[n] où 'n' est le numéro de la page. note que j'ai mis agenda entre guillement, car c'est une class pas un objet, donc or de question de l'utiliser tel quel.
ensuite, pour public ou private, c'est à toi de voir selon l'utilisation. Un puriste C++ te dirait en prvate, car il faut des fonction pour accéder aux données membres (donc "agenda".fonction_utilisant_vecteur)
1
Salut sniper
merci encore pour tes precision, en fait voila ce que j'ai fait mnt

class agenda{
...
public:
std::vector<Page>Pa;


}
int main(){

Page *PAG=NULL;
PAG=new Page();
agenda::Pa(le vecteur).push_back(*Page);
agenda::Pa[1].affiche()(fonction interne de Page);

}

et alors les resultat afficher a l'ecran sont totalement different de ce que j'ai mis(avec le constructeur de page)
ex Page::Page(){
jour=5;

a l' affichage j'ai Le jour du rdv est -5874....

pourrai tu m'aider merci
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
27 mars 2008 à 08:26
Salut.
utilise la classe vector de la STL :
std::vector<Objet> vecteur_d_objet;
pour l'utiliser il suffit d'utiliser l'opérateur [].
Enfin, si c'est du C++, vu que tu ne précise pas le langage !
0
merci pour ta reponse

oui c'est du c++ et faut il l'utilser comme ceci

class agenda{
...

public:

std::Vector<Page>PA;

}
ou en private

et pour l'utiliser apres dois je utiliser le nom de la classe suivi du nom du vecteur... puisque il est interne a la classe?
ex agenda.PA.variterne

ou agenda.(fonctionutilisantlevecteur)

merci pour vos reponse
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
28 mars 2008 à 11:52
Hum hum...
erreur classique de débutant, les indices de tableau en C commencent à 0 !
tu as déjà de la chance de ne pas avoir fait une erreur de segmentation.
agenda::Pa[0].affiche()
Pour la taille de Pa, u peux faire agenda::Pa.size()
regarde là pour des informations sur les vector : https://en.cppreference.com/w/cpp/container/vector
0
He Sniper t es un genie un tout gran merci

oui suis debutant

et mnt pour ajouter un autre objet il suffit de mettre a nouveau un push_back et il se mettra dans la case [1]?
0
warry > warry
28 mars 2008 à 13:31
Resalut sniper
mnt que j'ai fait grace a toi le code pour creer des objet page de rdv et les inserer dans le vecteur, est il possible mnt de copier directement tout les objets du vecteur dans un fichier? pourrai tu m'expliquer comment
encore merci
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
28 mars 2008 à 13:54
pour ajouter un autre objet il suffit de mettre a nouveau un push_back et il se mettra dans la case [1]?
oui.
Pour la copie de tout le vecteur dans un fichier, ça dépend de ton objet.
mais tout copier d'un coup n'est pas faisable (à ma connaissance), il faut que tu fasse une boucle sur tout les éléments de ton vecteur et que tu le sauve sur un fichier.
0
donc il me faut une fonction dans la classe de mon objet qui recopie les attributs dans le fichier
ex
class Page{
public:
void ecrire{
ecrire dans la fichier tout les attributs

}

et en faisant une boucle

for (i=0;i<2;i++){
Agenda->MONVECTEURDEPAGE[i].ecrire();

est ce bien ça

merci encore pour toute tes reponse et la suivantes
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297 > warry
28 mars 2008 à 15:54
exact.
Par contre, pour plus de souplesse/propreté
for (i=0;i<Agenda->MONVECTEURDEPAGE.size();i++){
Agenda->MONVECTEURDEPAGE[i].ecrire(); }

Même si c''est un peu plus lourd à écrire, cela permet de ne plus s'occuper du nombre de page si par la suite il change (en plus ou en moins)
Tu peux même faire plus sioux :
class agenda{
public : void ecrire();
...
}
void agenda::ecrire()
{
for (i=0;i<MONVECTEURDEPAGE.size();i++)
MONVECTEURDEPAGE[i].ecrire(); 
}

et ensuite dans le programme:
Agenda->ecrire();
0
warry > Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023
28 mars 2008 à 16:04
ok merci
mais tu vois le fichier je dois le declarerdans le .h de la classe qui ecrit dedant avec la fonction ecrire()
donc dans maclasse.h je mets le fichiers ainsi que le proto de ecrire(); et dans le .cpp le code de cette fonction?


merci d'avance
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297 > warry
28 mars 2008 à 16:51
je pense, de toute façon, à par pour les inline et le template : jamais de code dans les .h
je ne comprends pas bien ce que tu veux dire par "le fichier".
0
warry > Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023
28 mars 2008 à 16:59
ben en fait le fichier c'est celui dans lequel je veux sauvegarder mes objet page qui serai par exemple Rdv.txt

bien a toi
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ok
ben ecoute merci pour ton aide je vais essayé de continuer a travaillé dessus avec des collegues et je te tiens au courant

bien a toi
0
salut tout le monde
j'ai un ti souci je ne sais pas comment faire pour recopier les objets du vecteur dans un fichier

voila je m'explique apres avoir creer un vecteur d'objet Page dans une classe agenda
dans le main je fais des push_back et ça va ; apres affichage ça m'affiche aussi ce que j'ai dans mon vecteur donc les atributs de page donc jusque la tout va bien, mais apres il faut que je mette tout les objets contenus dans le vecteur dans un fichier texte; alors j'ai declarer dans ma classe page le fichier et une fonction qui rempli ce fichier
seulement apres l'execution le fichier est crée mais il n ya rien dedans

alors s'il vous plais a moi j'ai besoin de votre aide d'urgence

un tout grand merci d'vance
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
31 mars 2008 à 08:47
Salut.
Si tu arrive à écrire à l'écran, écrire dans un fichier c'est pareil. En effet, fichier et sortie standard, c'est considérer comme un flux, en sortie standard, tu lui précise implicitement.
As tu bien mis les attributs du fichier en écriture ?
Refermes tu bien ton fichier avant la fin du programme ?
Utilises tu l'en tete <fstream> ou <stdio.h> ?
0