2017-01-13 1 views
0

Ich weiß, dass x += y entspricht x = x + y. Gibt es eine Operation, die x = y + x entspricht. Zum Beispiel, um diesen Vorgang mit x und y zu kombinieren, wo x und y sind "1" und "2" würde x gleich "21" machen, nicht "12"?Gibt es eine Zeichenfolgenoperation, die ähnlich wie "+ =" ist, aber an der Vorderseite der Zeichenfolge hinzugefügt wird?

Was ist der einfachste Weg, um einen String vor Ort zu platzieren?

+0

verwenden können, Sie können keine Operationen für Grundtypen überlasten. Sie können jedoch eine Klasse deklarieren, die Ganzzahlen simuliert, und für Objekte dieser Klasse können Sie eine Operation beliebig überladen. Sie dürfen jedoch keine neuen Betreiber einführen. Sie können Operatoren überladen, die bereits in der Sprache existieren. –

+0

@NathanOliver Ich meinte als Strings !!! Ich werde jetzt bearbeiten. – theo2003

+1

@ theo2003: Nichts in C++ verhindert, dass Sie Ihr überladenes 'x + = y' als' x = y + x' implementieren. Es ist keine gute Übung, aber Sie können es einfach tun. Beantwortet das deine Frage? – AnT

Antwort

2

Scheinbar geht es nicht so sehr um die Definition von Operatoren, sondern darum, eine Zeichenfolge in eine andere einzufügen. In diesem Fall hat std::string eine ganze Reihe von insert member functions dafür.

Insbesondere die Zeichenfolge y an der Vorderseite der Zeichenfolge einzufügen x Sie x.insert(0, y);

1

Durch einen Helfer-Typ verwenden, können Sie die folgende Arbeit zu machen, wo x und y sind eine bestehende Art wie std::string:

x +prefix= y; 

Kredit für diese „genannt Betreiber“ -Ansatz, um Yakk geht, können Sie eine finden ausführlichere Diskussion mit Implementierungsbeispielen unter https://github.com/klmr/named-operator.

+0

Danke, ich habe mich nur gefragt, ob es mit einer einfachen Lösung möglich ist, ich denke, es wäre einfacher, es einfach ohne Shortcut-Operatoren zu machen. Trotzdem danke. – theo2003

1

Sicher, erstellen Sie Ihren eigenen Typ und Überlastoperator +=. dh:

+0

Ich habe gefragt, ob das auf einfache Weise möglich ist, aber trotzdem danke! – theo2003

Verwandte Themen