unfreundliche friend Anweisung!

Von: , Frage gestellt am Do, 10. Mai 2001

Hallo,

da ich jetzt fast schon am verzewifeln bin, stell ich mein Problem mal rein, und hoffe darauf, daß mir jemand helfen kann!

Es geht um folgende Klasse:
----------------------------------------------------------------
class MyString
{
public:
unsigned length() const {return iStrLaeng;}
unsigned capacity() const {return iCapa;}
void conOut(void)const;
int conin(void);
int indexOf(char,unsigned) const;
~MyString();
MyString(unsigned int=80);
MyString(char,unsigned int=80);
MyString(const char *,unsigned int=80 );
MyString(const MyString&);
MyString substr(unsigned , unsigned=0) const;
MyString& resize (unsigned);
MyString& replaceChar(char,unsigned);
MyString& operator= (const MyString&);
MyString& operator+= (const MyString&);
friend MyString operator+ (const MyString&,const MyString&);
char operator[] (unsigned int);
bool operator== (const MyString&);

private:
char *cp;
unsigned iStrLaeng;
unsigned iCapa;
};

----------------------------------------------------------------
Auf die Funktion operator+ bekomme ich jedoch nur die Fehlermeldung, daß ich auf die privaten Elemente der Klasse nicht zugreifen kann! Es sieht so aus, als könnte er die Funktiondefinition operator+ nicht der Funktionsdekleration zuweisen, aber warummmmmm??????
Hier nochmal die Funktion operator+:
----------------------------------------------------------------

MyString operator+ (const MyString& a,const MyString& b)
{
MyString Temp(a.iStrLaeng+b.iStrLaeng);
for(int i=0;i<a.iStrLaeng;i++)
*(Temp.cp+i)=*(a.cp+i);
for (i;i<a.iStrLaeng+b.iStrLaeng;i++)
*(Temp.cp)=*(b.iStrLaeng);
return Temp;

}
----------------------------------------------------------------

Ich bin für jeden Tipp dankbar und hoffe auf euch!!!

Rupert Trager

1 Antworten zu dieser Frage

  1. Antwort von nach 19 Stunden 0 hilfreich
    Danke, hat sich erledigt!

    jetzt funktionierts!

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!