|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Sep 2005
Messaggi: 120
|
C++: trovate l'errore...
perchè io non ci riesco...
la classe è questa Codice:
class Immagine
{ bool*primo;
int larg,alt;
friend ostream& operator<<(ostream&, const Immagine&);
public:
Immagine(int,int);
~Immagine();
bool set(int,int);
};
Codice:
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;
}
grazie a chi mi aiuterà |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jul 2004
Messaggi: 1685
|
using std::ostream; l'hai messo?
"219" piuttosto che '219'? |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
|
Quote:
non ho capito a che serve dichiarare ostream con '&' alla fine visto che è una dichiarazione di variabile e non di argomento di funzione. |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Feb 2004
Messaggi: 1454
|
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: Codice:
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;
}
Ultima modifica di Furla : 16-01-2007 alle 19:10. |
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Sep 2005
Messaggi: 120
|
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
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:11.



















