Accueil > Forum > > > > besoin d'eclaircissement sur les classes et pointeurs
besoin d'eclaircissement sur les classes et pointeurs
vendredi 14 novembre 2003 à 15:57:13 |
besoin d'eclaircissement sur les classes et pointeurs

oliarn
|
bonjour, je fais un programme en c++ pour la fac e tj'aimerai savoir comment manipuler mes classes dans mon programmes. voila une fonction par exemple message esst une classe qui contient un pointeur vers un message suivant pour chainee les messages. cette fonction doit permettre de lire le ieme message de cette liste . int utilisateur :: lire(int numero, message* liste) { ptrmsg tmp; int indice=1; tmp = new message; tmp=liste; while(indice!=numero) { /* Gestion des errreurs, ex: le message que l?on souhaite effacer n?existe pas */ if (tmp==NULL) { return 0; else { /*on avance au prochain message et on incremente l'indice*/ tmp=tmp->suivant; indice++; } } cout<<"expediteur:" ; cout<<tmp.expediteur<<endl; cout<<"sujet: "; cout<<tmp.sujet<<endl; cout<<"date: "; cout<<tmp.date<<endl; cout<<"texte: "; cout<<tmp.texte<<endl; return 1; }
|
|
vendredi 14 novembre 2003 à 16:08:20 |
Re : besoin d'eclaircissement sur les classes et pointeurs

ymca2003
|
l'objet message créé est inutile. De plus, comme tu réaffecte une nouvelle valeur à tmp juste après, l'adresse de l'objet créé est perdue et donc du ne pourras pas l'utiliser ni détruir l'objet. tmp = new message; tmp=liste;
ensuite, pour accéder aux champs de tmp, il faut utiliser -> (comme tu le fais dans le while) au niveau des cout cout<<"expediteur:" ; cout<<tmp->expediteur<<endl; cout<<"sujet: "; cout<<tmp->sujet<<endl; cout<<"date: "; cout<<tmp->date<<endl; cout<<"texte: "; cout<<tmp->texte<<endl;
|
|
vendredi 14 novembre 2003 à 16:11:53 |
Re : besoin d'eclaircissement sur les classes et pointeurs

oliarn
|
donc le new et le delete ne serve a rien ?
en fait quand j'a iun pointeur de classe pour acceder a la valeur de ses arguments il faut que je fasse nom->argument ? je pensais que ca em renvoyais le pointeur vers l'argument.
autrement si je dis que tmp es tun message ca ne marcherait pas ?
|
|
vendredi 14 novembre 2003 à 16:19:30 |
Re : besoin d'eclaircissement sur les classes et pointeurs

oliarn
|
je sais pas si t uauras le courage de lire ce code mais est ce que les pointeurs sont bien utilises et est ce la facon la plus simple de proceder ?
ptrutil charger_utilisateur(const char* fichier) { // fonction qui va nous servir a instancier // une classe utilisateur a partir d'un fichier. ptrutil util; string mot; ptrmsg tmp;
ifstream Entree("fichier") // on ouvre le fichier grace a un flux .
tmp=util->anc_mess; // on pointe tmp sur le debut // de la liste des anciens messages. Entree>>mot;
if ((mot!="$"))
{ cout << "fichier non valide (utilisateur)" << endl;
return NULL; exit(0); } Entree>>mot; util->pass=mot; Entree>>mot; util->num_ip=mot; Entree>>mot;
if (mot!="$") { cout << "fichier non valide (utilisateur)" << endl; //procedure d'erreur de fichier Entree.close(); return NULL; } else { While (mot !="?") //tant que l'on ne rencontre pas se fichier on charge les anciens messages { Entree>>mot; tmp->expediteur=mot; //chargement caracteristique message Entree>>mot; tmp->destinataire; Entree>>mot; tmp->lu=mot; Entree>>mot; tmp->sujet=mot; Entree>>mot; tmp->date=mot; while(mot!="#") {
Entree>>mot; // chargement du texte tant que l'on ne tombe tmp->text=tmp.text+mot; // pas sur le signe de fin de message } tmp=tmp->suivant; // on passe au chargement du prochain message // si on est pas arrive a la fin de la liste // des anciens messages. }
tmp=util->nouv_mess; // on va maintenant charger les nouveaux messages
while (Entree>>mot) // tant que l'on rencontre des caracteres // c qu'il reste des nouveaux messages a charger { Entree>>mot;
tmp.expediteur=mot; Entree>>mot; tmp->destinataire; // meme procedure que pour les anciens messages. Entree>>mot; tmp->lu=mot; Entree>>mot; tmp->sujet=mot; Entree>>mot; tmp->date=mot; while(mot!="#") {
Entree>>mot; tmp->text=tmp->text+mot; } tmp=tmp->suivant; } } }
|
|
vendredi 14 novembre 2003 à 23:29:59 |
Re : besoin d'eclaircissement sur les classes et pointeurs

ymca2003
|
Pour savoir si les pointeurs sont bien utilisés (syntaxiquement parlant) tu compile et tu regarde le résultat. Si tmp est un poiteur sur un objet de type message et que tufait tmp.txt, tua auras une erreur de compilation.
Sinon, quant tu déclare un pointeur sur un objet, avant de l'utiliser, il FAUT l'initialiser. Pour cela 2 façon : - A partir d'un objet déjà existant (début de liste par exemple) - En créant un nouvel objet dynamiquement avec new.
C'est pour ca que dans le premier exemple le new est inutile car tu initialise tmp avec le début de la liste
Dans le deuxième exemple, le pointeur "util" est utilisé avant d'être initialisé.
Enfin, pour comparer des chaînes de caractères, c'est pas if(mot != "$") mais if(strcmp(mot, "$") != 0)
|
|
dimanche 16 novembre 2003 à 12:09:56 |
Re : besoin d'eclaircissement sur les classes et pointeurs

oliarn
|
Merci, j'ai fait les modifs et c plus klr dans ma tete maintenant.
|
|
Cette discussion est classée dans : message, cout, tmp, indice, endl
Répondre à ce message
Sujets en rapport avec ce message
Pas De Solution??? [ par PsyCaDi ]
Bonjour,Voilà, je veux faire un truc tout con avec des tableaux mais ça ne marche pas. Quelqu'un peut-il me dire ce qui n'est pas bon (sauf moi, ça je
probleme sur une classe [ par NerOcrO ]
Voici mon code :#include #include class Chanson //classe Chanson{ public: int Duree; char TypeDeFichier[3], Auteur[50], Titre[50], Interprete[50
que des boucles. [ par pratix ]
Salut à tous.Je post mon prg cherchenbr modifié (voir sujet précédent ''int main" ).Programme compilé avec visual C++ 06. ( zéro erreur )j'ai essay
caractere speciaux a afficher en boucle [ par ranouf ]
#include void main (){ cout cout cout}comment faire pour automatiser cette tache ?j'aurai besoin de savoir a koi correspon
tableau de structures type pointeur [ par chocho ]
Merci d'avoir répondu à ma demande d'aide.Voici la source sur laquelle je coince:#include#include#define maxlist 10int indicecourant;struct abonne
fichier exel (lecture et ecriture) [ par rissorg ]
Bonjour a tous!j'essaye de faire un programme qui doit lire differents fichiers exel ,comparer les donnees lu au donnees contenu dans un fichier text
bind bought bought lier [ par JoebarGlut ]
Salut, j'ai un piti problem de bind, kelkun peut il m'eclairer ?j'explik : (c'est un client qui se metamorphose en serveur ou en client suivant ce qu'
Aide : Patch anti sasser.b [ par juki_webmaster ]
Bonjour,Je me suis remis au developpement c++ sous dev cpp 4.Je realise un patch contre sasser.b.worm, en suivant l'indication ;http://www.symantec.co
Allocation dynamiques [ par romain42 ]
Bonjour tout le monde.Je vous explique mon problème:j'ai fait une struct voila le codetypedef struct Match::but{ char nombuteur[20],prenom[20],surnom[
Vérification fonction d'envoi RS232 [ par VolaiL ]
J'ai à réaliser un programme permettant de communiquer avec une machine depuis un PC.voici ce que j'ai fait :void Envoyer(char *message){ DCB car_com;
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|