View Full Version : C++: trovate l'errore...
perchè io non ci riesco...
la classe è questa
class Immagine
{ bool*primo;
int larg,alt;
friend ostream& operator<<(ostream&, const Immagine&);
public:
Immagine(int,int);
~Immagine();
bool set(int,int);
};
la funzione è questa:
ostream& operator<< (ostream& out, const Immagine& immag)
{for (int i=0;i<alt;i++)
{for (int j=0;j<larg;i++)
{ if(primo[i][j]
out<<'219';
else out<<'0';
}
out<<endl;}
return out;
}
il compilatore (il devc++) mi dà: 6 ISO C++ forbids declaration of `ostream' with no type
grazie a chi mi aiuterà
reptile9985
16-01-2007, 18:38
using std::ostream; l'hai messo?
"219" piuttosto che '219'?
perchè io non ci riesco...
la classe è questa
class Immagine
{ bool* primo;
int larg,alt;
friend ostream& operator<<(ostream&, const Immagine&); //l'errore è qua
public:
Immagine(int,int);
~Immagine();
bool set(int,int);
};
la funzione è questa:
ostream& operator<< (ostream& out, const Immagine& immag)// o qua
{for (int i=0;i<alt;i++)
{for (int j=0;j<larg;i++)
{ if(primo[i][j])// parentesi
out<<'219';
else out<<'0';
}
out<<endl;}
return out;
}
il compilatore (il devc++) mi dà: 6 ISO C++ forbids declaration of `ostream' with no type
l'errore significa: Il C++ ISO vieta la dichiarazaione di 'ostream' senza tipo.
non ho capito a che serve dichiarare ostream con '&' alla fine visto che è una dichiarazione di variabile e non di argomento di funzione.
la dichiarazione è giusta, l'overloading dell'operatore di scrittura si fa in quel modo.
secondo me è il 219 che va messo tra doppi apici, visto che è una stringa.
poi, scusa se te lo dico, impara ad indentare per bene, così la cosa è ambigua. dimmi se così va bene:
ostream& operator<< (ostream& out, const Immagine& immag)
{
for (int i=0;i<alt;i++)
{
for (int j=0;j<larg;i++)
{}// ---questa la puoi omettere
if(primo[i][j])
out<<"219";//oppure intendevi stampare il carattere che ha 219 come codifica ascii?
else
out<<'0';
}// ---questa la puoi omettere
out<<endl;
}
return out;
}
no no, il 219 è un carattere ascii e andava messo con char(219), era un problema di include risolto pulendo un po gli include... using namespace::ostream cmq non lo ho mai visto... grazie cmq
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.