bonjour, voila, dans un bete progrmme dont j'essaie de tester les
classes, je cle avec la fonction delete
ce prog creer une bete liste, affice les valeurs, detruit le denier
element, pis raffiche mais je sais pas pourquoi il ne veux pas me
supprimer le dernier element
#include <iostream>
using namespace std;
class elem
{
public:
elem* next;
int info;
elem(int);
};
elem::elem(int a)
{
info = a;
next = NULL;
}
main()
{
elem* tete= new elem(2);//element bidon
elem * p=tete;
for (int i= 1026; i<1093; i = i+12)
{
p->next = new elem(i);
p=p->next;
}
for(p = tete->next;p!=NULL;p=p->next)
cout<<p->info<<" ";
cout <<endl;
for(p = tete;p->next!=NULL;p=p->next)
;//atteint le dernier element
//est sencé le supprimer, mais sais pas pouruqoi, il ne veux pas.
delete p;
|> | |> Pour précision aussi, la déclaration |> | |> main()
|> | |> contenait de toute facon une erreur. Si la personne ne veut |> | |> renvoyer aucune valeure dans main, il faut écrire void |> | |> main() car le type de retour doit obligatoirement être |> | |> précisé pour une fonction, dans le cas ou on ne retourne |> | |> rien c'est void, et il n'y a pas de type int implicite en C++ |> | |> comme il y a pu y avoir en C, ou cette définition était |> | |> équivalente à int main().
|> | Il est impossible dans le C++ standard à ne revoyer aucune |> | valeur de main.
|> Comment un programme C++ fait pour savoir qu'aucune valeur n'est |> renvoyée ? :-)
S'il n'y a pas de return, le compilateur est censé renvoyer 0 quand même. Donc, ou bien le programmeur renvoie quelque chose, ou bien le compilateur le fait pour lui, mais il y a toujours une valeur définie renvoyée.
-- James Kanze mailto: Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 11 rue de Rambouillet, 78460 Chevreuse, France +33 1 41 89 80 93
Gabriel Dos Reis <gdr@cs.tamu.edu> writes:
|> James Kanze <kanze@gabi-soft.fr> writes:
|> | Anthony Fleury <fleury_anthony@hotmail_.com> writes:
|> | |> Pour précision aussi, la déclaration
|> | |> main()
|> | |> contenait de toute facon une erreur. Si la personne ne veut
|> | |> renvoyer aucune valeure dans main, il faut écrire void
|> | |> main() car le type de retour doit obligatoirement être
|> | |> précisé pour une fonction, dans le cas ou on ne retourne
|> | |> rien c'est void, et il n'y a pas de type int implicite en C++
|> | |> comme il y a pu y avoir en C, ou cette définition était
|> | |> équivalente à int main().
|> | Il est impossible dans le C++ standard à ne revoyer aucune
|> | valeur de main.
|> Comment un programme C++ fait pour savoir qu'aucune valeur n'est
|> renvoyée ? :-)
S'il n'y a pas de return, le compilateur est censé renvoyer 0 quand
même. Donc, ou bien le programmeur renvoie quelque chose, ou bien le
compilateur le fait pour lui, mais il y a toujours une valeur définie
renvoyée.
--
James Kanze mailto:kanze@gabi-soft.fr
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France +33 1 41 89 80 93
|> | |> Pour précision aussi, la déclaration |> | |> main()
|> | |> contenait de toute facon une erreur. Si la personne ne veut |> | |> renvoyer aucune valeure dans main, il faut écrire void |> | |> main() car le type de retour doit obligatoirement être |> | |> précisé pour une fonction, dans le cas ou on ne retourne |> | |> rien c'est void, et il n'y a pas de type int implicite en C++ |> | |> comme il y a pu y avoir en C, ou cette définition était |> | |> équivalente à int main().
|> | Il est impossible dans le C++ standard à ne revoyer aucune |> | valeur de main.
|> Comment un programme C++ fait pour savoir qu'aucune valeur n'est |> renvoyée ? :-)
S'il n'y a pas de return, le compilateur est censé renvoyer 0 quand même. Donc, ou bien le programmeur renvoie quelque chose, ou bien le compilateur le fait pour lui, mais il y a toujours une valeur définie renvoyée.
-- James Kanze mailto: Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 11 rue de Rambouillet, 78460 Chevreuse, France +33 1 41 89 80 93
PRORIOL Fabien
Toujours d'accord... je disais que c'est une mauvaise habitude de *ne pas* retourner une valeur dans "main" et je trouve dommage que ce soit facultatif. J'aurais préféré que ce soit une erreur ou au pire un warning.
Mais d'ailleurs, dans VC++6 il me semble qu'un Warning est annoncé... Je ne suis pas sur a 100%, mais il me semble bien.
@+Fab
Toujours d'accord... je disais que c'est une mauvaise habitude de *ne pas*
retourner une valeur dans "main" et je trouve dommage que ce soit
facultatif.
J'aurais préféré que ce soit une erreur ou au pire un warning.
Mais d'ailleurs, dans VC++6 il me semble qu'un Warning est annoncé...
Je ne suis pas sur a 100%, mais il me semble bien.
Toujours d'accord... je disais que c'est une mauvaise habitude de *ne pas* retourner une valeur dans "main" et je trouve dommage que ce soit facultatif. J'aurais préféré que ce soit une erreur ou au pire un warning.
Mais d'ailleurs, dans VC++6 il me semble qu'un Warning est annoncé... Je ne suis pas sur a 100%, mais il me semble bien.