gahoj
, mám úkol do školy, kde mám ve tříde TClass privátní proměnnou char *iValue. Mám přetížit operátor >> ( v mainu pro cin>> (objekt tridy) - to by mělo přiřadit řetězec do iValue pomocí metody SetValue()
class TClass
{
private:
const char *iValue;
.
.
.
void SetValue(const char *aValue)
{
iValue = aValue;
}
.
.
.
friend std::ostream& operator<<(std::ostream& aOStream, const TClass &adata)
{aOStream << adata.iValue ; return aOStream;}
friend std::istream& operator>>(std::istream& aIStream, TClass& adata)
{
char *buff;
buff = new char;
aIStream.width(50+1); //tady jsem zkoušel snad všechno a furt nic
aIStream >> &buff[0];
adata.SetValue(buff);
free(buff);
return aIStream;
}
main.cpp:
.
.
.
TClass a;
cin>>a;
cout<<a;
cout<<a; -> vypisuje nějaký náhodný znaky, ale když dám např.: TClass b("ahoj"); cout<<b; tak to vypíše bez problémů "ahoj"
...už mi z toho hrabe :-), věděl by někdo, co tam je špatně?