PVI wrote:
> Jeg vil gerne lave en operator overloading af "<<" på min klasse, således
> at jeg kan lave følgende :
>
> MyClass << "Hello World. " << 10 << " tons of bear".
>
> Jeg har forsøgt at lave følgende i MyClass
>
> friend ostream & operator<< (ostream &os, const char *lLine);
> friend ostream & operator<< (ostream &os, int iVal);
>
> Men når jeg så implementere ostream &MyClass:
erator<<(ostream &os, const
> char *lLine) {.....};
Du blander vist forskellige ting sammen. Du er nødt til at beslutte om
funktionen skal være friend eller medlem. Den kan ikke være begge dele.
At overloade operator<< for ostream på venstre side og const char* eller
int på højre side er ikke nogen god ide, da den er overloadet i
forvejen. Jeg ved ikke hvad det helt præcist er du vil, men måske noget
i retningen af:
class TMyClass
{
public:
TMyClass& operator<<(const char *lLine);
TMyClass& operator<<(int iVal);
};
TMyClass& TMyClass:
erator<<(const char *lLine)
{
//Do something
return *this;
}
TMyClass& TMyClass:
erator<<(int iVal)
{
//Do something
return *this;
}
Denne kan bruges som:
TMyClass MyClass;
MyClass << "Hello World. " << 10 << " tons of bear";
Ivan Johansen