Tak for hjælpen Robert...
Men jeg har lige lidt yderligere spørgsmål ang. denne operator over load...
jeg kan sagtens få Roberts eksempel til at virke, endvidere med en lille ændring:
Jeg fjerner ShowStr funktionen og tilføjer en friend funktion der bevirker jeg kan få direkte adgang til de private variabler i klassen.
Er som følger: Str.h
class Streng {
private:
char* str;
public:
Streng( char* strPtr ) : str( strPtr ) {}
friend ostream& operator << ( ostream&, const Streng& );
};
ostream& operator << (ostream& outStream, const Streng& rhs)
{
outStream << rhs.str;
return outStream;
}
Oventående kode virker fint, lige efter bogen.
Så har jeg min egen Str.h hvor jeg har tilføjet mit operator overload << til klassen ligesom eksemplet ovenfor...
Str.h
class Streng
{
private:
// Declaring variables
char* str;
int length;
// Private help constructor - Used by copy constructor
Streng( int );
public:
// Constructors and destructor
Streng ( void );
Streng ( const char* const );
Streng ( const Streng& ); // Copy constructor
~Streng( void ); // Destructor
// Public functions inline
int StrLen ( void ) const { return length; }
const char* ShowStr ( void ) const { return str; }
// Operator overload
friend ostream& operator << ( ostream&, const Streng& );
char& operator [] ( int );
char operator [] ( int ) const;
Streng operator + ( const Streng& );
void operator += ( const Streng& );
Streng& operator = ( const Streng& );
};
ostream& operator << ( ostream& stream, Streng& rhs )
{
stream << rhs.str;
return stream;
}
Men det virker ikke og jeg forstår det ikke for jeg syntes jeg har implementeret det ligesom det er implementeret i i eksemplet ovenfor dette.
Jeg har også prøvet at lege med at have selve definitionen til operator overload i min Str.cpp men det giver også knuder...
ER jeg bare dum og blind så jeg ikke kan se en syntax fejl eller hvad er der i vejen???
Hvis i er interesseret i hele koden så mail mig på kent.s.olsen@live.dk eller tilføj mig til MSN via restless@live.dk.
Jeg sender gerne mine filer så i kan se på det samlet.
Indlæg senest redigeret d. 07.09.2008 11:59 af Bruger #14086