PDA

View Full Version : c++: un pò di errori


DarkSiDE
12-01-2005, 09:14
void scrivi(Grafo &g)(){
for (int i=0;i<10;i++){
g.insnodo(i);
}


283 d:uni\_ii_al~1implem~1grafografi.cpp
`scrivi' declared as function returning a function




void leggi(Grafo &g)(){
for (int i=0;i<MAXGR;i++){
cout << g.legnodo(i);
}
}


d:uni\_ii_al~1implem~1grafografi.cpp:288: `leggi' declared as function returning a function
d:uni\_ii_al~1implem~1grafografi.cpp: In function `int leggi(Grafo &)':
d:uni\_ii_al~1implem~1grafografi.cpp:290: no matching function for call to `Grafo::legnodo (int &)'



class lista
{
public:
void crealista();
bool listavuota();
tipoelem leggilista(pos);
void scrivilista(tipoelem, pos);
pos primolista();
bool finelista(pos);
pos succlista(pos);
pos predlista(pos);
void inslista(tipoelem, pos);
void canclista(pos);
lista();
~lista();
private:
tipoelem lista[80];
int lunghezza;
};


32 d:uni\_ii_al~1implem~1grafoc~1grafoc~1.cpp
ANSI C++ forbids data member `lista' with same name as enclosing class




Coda :: tipoelem Coda :: leggicoda()
{
if(testa==NULL)
return NULL;
else
return testa->elem;
}

35 d:uni\_ii_al~1200431~1\tracce~1#coda_~1def_classe_coda.cpp
warning: converting NULL to non-pointer type

Ziosilvio
12-01-2005, 10:26
Anzitutto, si scrive po' con l'apostrofo e non pò con l'accento (po' è l'abbreviazione di poco).
Poi:
Originariamente inviato da DarkSiDE

void scrivi(Grafo &g)(){
for (int i=0;i<10;i++){
g.insnodo(i);
}


283 d:uni\_ii_al~1implem~1grafografi.cpp
`scrivi' declared as function returning a function
Dimenticata una graffa chiusa.
Se questo è il primo errore, probabilmente influenza anche gli altri.

class lista
{
public:
void crealista();
bool listavuota();
tipoelem leggilista(pos);
void scrivilista(tipoelem, pos);
pos primolista();
bool finelista(pos);
pos succlista(pos);
pos predlista(pos);
void inslista(tipoelem, pos);
void canclista(pos);
lista();
~lista();
private:
tipoelem lista[80];
int lunghezza;
};


32 d:uni\_ii_al~1implem~1grafoc~1grafoc~1.cpp
ANSI C++ forbids data member `lista' with same name as enclosing class
Autoesplicativo.
Terzultima riga: "lista" è il nome di una variabile array all'interno di una struttura dello stesso nome.

DarkSiDE
12-01-2005, 10:46
void scrivi(Grafo &g)(){
for (int i=0;i<10;i++){
g.insnodo(i);
}
}
void leggi(Grafo &g)(){
for (int i=0;i<MAXGR;i++){
cout << g.legnodo(i);
}
}

le parentesi ci sono, ho sbagliato a postare, grazie delle correzioni :)

anx721
12-01-2005, 13:27
Il problema sono le doppie parentesi tonde del prototipo:

void scrivi(Grafo &g)(){

mentre deve essere

void scrivi(Grafo &g){

DanieleC88
12-01-2005, 13:56
Originariamente inviato da Ziosilvio
Anzitutto, si scrive po' con l'apostrofo e non pò con l'accento (po' è l'abbreviazione di poco).
Finalmente, qualcuno che conosce la grammatica! :)

Poi:

Dimenticata una graffa chiusa.
Se questo è il primo errore, probabilmente influenza anche gli altri.
Secondo me l'errore è nelle parentesi tonde (ce ne sono due in più).

Autoesplicativo.
Terzultima riga: "lista" è il nome di una variabile array all'interno di una struttura dello stesso nome.
Esattamente.

Ziosilvio
12-01-2005, 14:24
Originariamente inviato da DanieleC88
Secondo me l'errore è nelle parentesi tonde (ce ne sono due in più).
E' vero, non me ne ero accorto. Chiedo scusa.

DarkSiDE
12-01-2005, 15:21
Coda :: tipoelem Coda :: leggicoda()
{
if(testa==NULL)
return NULL;
else
return testa->elem;
}


35 d:uni\_ii_al~1200431~1\tracce~1#coda_~1def_classe_coda.cpp
warning: converting NULL to non-pointer type


ho sistemato tutto tranne questo, che cavolo é? :D

anx721
12-01-2005, 16:11
pare che ritorni NULL mentre il tipo di ritorno della funzione non è un puntatore