![]() |
|
Probleme de new, tableau, * , ou & ?
|
Thread Tools | Display Modes |
|
|
|
#1
|
|||
|
|||
|
Re: Probleme de new, tableau, * , ou & ?
tabVertex[ligne] = new Vertex ( etiq , degre, x,y );
tu fais une affectation, je ne comprend pas pourquoi il y a une allocation dynamique avant ton appel de fonction, en gros je ne comprend pourquoi il y a un new , alors que tu as alloué l'espace précédemment : Vertex *tabVertex = new Vertex[getNbreVert()]; En meme temps j'ai un peu perdu en C++ donc ... si je comprend plus tout, c'est un peu normal, sinon une bonne solution, si tu ne trouves pas, tu décomposes jusqu'a trouver ou ca coince : tu alloues la memoire de ton tableau tu affectes a une variable puis tu remplis ton tableau par la variable. tabVertex[ligne] = Vertex ( etiq , degre, x,y ) ne marche-t-il pas ? Last edited by Barnabé; 19-03-2004 at 23:54. |
|
#2
|
|||
|
|||
|
Re: Probleme de new, tableau, * , ou & ?
Quote:
en même temps quand je l'enlève j'ai une erreur: main.cc: In function `void Read_Graph(char*, AdjList&, HashTable&, int)': main.cc:186: error: no match for 'operator=' in '*(tabVertex + (+(ligne * 2 )) = Vertex(etiq, degre, x, y)' vertex.h:61: error: candidates are: void Vertex: perator=(Vertex&) main.cc:239: error: cannot convert `Vertex' to `Vertex*' for argument `1' to `float distanceE(Vertex*, Vertex*)' main.cc:242: error: cannot convert `Vertex' to `Vertex*' for argument `1' to `float distanceE(Vertex*, Vertex*)' make: *** [main.o] Erreur 1 apparemment il va chercher un operateur = redefini dans Vertex.h -- void operator =(Vertex& b) { = b.name; parent = b.parent; distance = b.distance; degre = b.degre; x=b.x; y=b.y; }; -- que penses tu de ces lignes ? Vertex **tabVertex = new Vertex*[getNbreVert()]; tabVertex[ligne] = new Vertex ( etiq , degre, x,y ); ou alors je dois retirer la redefinition de l'operator = |
|
#3
|
|||
|
|||
|
Re: Probleme de new, tableau, * , ou & ?
que penses tu de ces lignes ?
Vertex **tabVertex = new Vertex*[getNbreVert()]; tabVertex[ligne] = new Vertex ( etiq , degre, x,y ); ou alors je dois retirer la redefinition de l'operator tu déclares un pointeur de pointeur de vertex, tu alloues un espace getnbrevert() au pointeur de vertex et tu lui passes la référence par le new , la premiere ligne a l'air ok tabvertex[ligne] est encore un pointeur, il doit donc stocker l'adresse du vertex créé, tu fais appel au constructeur qui semble renvoyer l'adresse de l'espace mémoire alloué par le new. la encore c'est okay. Oui tout ca m'a l air déjà plus correcte, ton tableau doit stocker des adresses de vertex, pas des vertex directement, d'ou le besoin effectivement d'un double pointeur de vertex, l'operator n'a donc pas besoin d'être redéfini : l'operateur = ne fait que te passer l'adresse du vertex. |
![]() |
| Bookmarks |
«
Previous Thread
|
Next Thread
»
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Petit probléme avec outlook express !!! | Alexlesioux | Internet, Réseaux et Sécurité | 11 | 31-08-2004 08:16 |
| Probleme de Raid avec MSI K7T266 Pro2 RU | Lionel-78 | Windows NT4/2000/XP Client | 0 | 03-04-2003 13:01 |
| Probléme de lenteurs... | chalouf | Discussions sur le site et/ou le forum | 11 | 22-01-2003 20:37 |
| Probleme site!! | chalouf | Discussions sur le site et/ou le forum | 4 | 21-10-2002 22:06 |
| Problème forum | claude922 | Discussions sur le site et/ou le forum | 15 | 21-10-2002 08:04 |
All times are GMT +2. The time now is 18:46.
Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.



)) = Vertex(etiq, degre, x, y)'
perator=(Vertex&) 





















Hybrid Mode


