Zwei Zeichenketten aneinander hängen (Operatorüberladung )
-
Z. Bsp. so
String String::operator+ (const String& s) { String temp(*this); strcat(temp.string, s.string); return temp; }
-
Vielen Dank für die Antworten funktioniert super
@simon2 ich muss operatorüberladung machen daher selber die klasse string machen
-
aber noch ne frage dazu geht das auch irgendwie mit einem Array also anstatt
String temp(*this);
z.B char temp[100]...
-
Es wäre evtl. besser den operator+ außerhalb der Klasse zu implementieren. Noch besser ist es dies über einen, in der Klasse implementierten, operator+= zu machen.
-
kein schrieb:
...ich muss operatorüberladung machen daher selber die klasse string machen
Sorry, was soll dieser Satz ausdrücken ?

Gruß,
Simon2.
-
ok Danke
@simon2
also ich soll es nicht einfach mit Strings machen sondern ich soll 2 Char Arrays aneinander ketten wenn ich in der Main Array1+Array2 eingebe normalerweise gibt es ja ein Fehler. Daher muss ich den Operator+ überladen.
z.B
String String::operator+ (const String& s)
{
.....
}und nicht einfach zwei Srings verketten
-
Simon2 schrieb:
kein schrieb:
...ich muss operatorüberladung machen daher selber die klasse string machen
Sorry, was soll dieser Satz ausdrücken ?

Vermutlich daß es um Hausaufgaben geht - eine eigene Stringklasse ohne STL-Hilfe zu schreiben.
@kein: strcat() entspricht eher einem op+=. Wenn du den Urspungsstring nicht angreifen willst, mußt du seine Daten erst umkopieren.
-
schau dir evtl. auch mal den post von CStoll in diesem Thread an: http://www.c-plusplus.net/forum/viewtopic-var-t-is-198494.html Da gehts zwar um int, aber wie CStoll sagt kann man op+= gut mir strcat machen und dann wie dort beschrieben op+ einfach durch += ausdruecken.
-
kein schrieb:
...
@simon2
also ich soll es nicht einfach mit Strings machen sondern ich soll 2 Char Arrays aneinander ketten wenn ich in der Main Array1+Array2 eingebe normalerweise gibt es ja ein Fehler. ...Sorry, aber ohne Satzzeichen verstehe ich sowas nicht.
Gruß,
Simon2.
-
Vielen Dank für eure Antworten ich habe es jetzt mit dem += Operator gemacht
mfg