• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

C++ strings konkatenieren?

creative7even

Jerseymac
Registriert
23.02.05
Beiträge
454
Hallo liebe Hackergemeinde...

wie kann es sein dass die append-Funktion der Klasse <string> nicht vorhanden ist?

Code:
#include <string>
using namespace std;

...

string Class::toString() {
  return *(this->servername).append(" made a booboo");
}
...funktioniert auf der Windose (Visual Studio), mein Apfel weigert sich... (wie lautet hier die Alternative?)

c7.
 
Natürlich gibt's auf dem Mac auch string::append(). Zum Beispiel
Code:
#include <string>
#include <iostream>

using namespace std;

string foo(string s) {
  return s.append(" Welt!");
}

int main()
{
  cout << foo(string("Hallo")) << endl;
  return 0;
}
kann ich auf dem Tiger mit g++ 4.0 problemlos übersetzen. Poste doch mal Deine Fehlermeldungen.
Ein bisschen unwohl ist mir allerdings, dass append() eine Referenz auf einen String zurückgibt, Du das aber als "echten" String weiterverarbeiten willst.
 
Zuletzt bearbeitet:
Hallo!

Danke vorerst mal für die rasche Hilfe!

Fehlermeldung lautet:
Code:
error: request for member `append` in `this->Class::servername`, which is of non-aggregate type `std::string*`

'servername' ist ein string-pointer, deshalb wird er auch in der Methode toString() dereferenziert.

no idea.... c7
 
Ach so. Ich glaube, Du musst das anders klammern, weil der Stern vorne zum Schluß ausgewertet wird:
Code:
return (*(this->servername)).append(" made a booboo");
oder so:
Code:
return this->servername->append(" made a booboo");
 
  • Like
Reaktionen: creative7even