Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

etudiant--> help

22 réponses
Avatar
elekis
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;

cout <<p->info<<endl;

for(p = tete->next;p!=NULL;p=p->next)
cout<<p->info<<" ";
cout << endl;

}


1026 1038 1050 1062 1074 1086
1086
1026 1038 1050 1062 1074 1086


j'ai deja chercher dans deux trois boucains, ainsi que donas mon cours,
mais je trouve pas

merci

a++

2 réponses

1 2 3
Avatar
James Kanze
Gabriel Dos Reis writes:

|> James Kanze writes:

|> | Anthony Fleury 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:
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France +33 1 41 89 80 93
Avatar
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

1 2 3