2 Strings innerhalb einer Methode verbinden
-
Das liegt daran, dass this->leben (Warum schreibst du eigentlich überall this-> davor?) kein String ist, sondern ein int. Also musst du den int erst zu einem String machen. C++11: to_string. Ohne C++11: Alles in der gewünschten Form in einen Stringstream schreiben, dann den zusammengesetzten String rausziehen.
P.S.:
srand (NULL);Ich wette, das hast du falsch abgeschrieben und verstehst zudem nicht, was es überhaupt macht.
-
[...] int-Wert nicht einfach mit '+' zusammmenflanschen. [...]
man kann es ja mal versuchen

[...] (Warum schreibst du eigentlich überall this-> davor?) [...]
Wieso? kann man das Schlüsselwort "this" auch weglassen? Wenn ja warum :o? (Sorry, bin die Programmiersprache erst am studieren :P)
P.S.:
C++:
srand (NULL);
Ich wette, das hast du falsch abgeschrieben und verstehst zudem nicht, was es überhaupt macht.Da muss ich dir leider sagen das du die Wette verloren hast ^^
> Ich weiß sehr wohl was dies macht. Setzt den Startwert für den Algorithmus der funktion rand(). Allerdings habe ich vergessen die ctime einzubinden und die funktion time() zu verwenden...
Das ganze sollte so aussehen:
srand(time(NULL));<:
Okey, dann versuch ich es mal und danke für die Antwort ^^
(Man, ist das alles so ungewohnt und neu für mich
-
Make-Grafik schrieb:
Wieso? kann man das Schlüsselwort "this" auch weglassen? Wenn ja warum :o? (Sorry, bin die Programmiersprache erst am studieren :P)
Na, mit this beziehst du dich ja auf DEIN Objekt. Wenn du dich aber bereits in DEINEM Objekt befindest, wozu dann noch this? Verstehst du?

-
In anderen Worten, du brauchst
thisnur, wenn du dich explizit auf das aktuelle Objekt beziehst. Zum Beispiel wenn du einen Zeiger auf das aktuelle Objekt benötigst. Oder um Namenskonflikten mit lokalen Variablen und Parametern vorzubeugen.
-
Ich schreib das auch überall hin wo geht. Weil sieht schöner aus und ich sehe schneller woher die Variable kommt.
Aber ist kein technisches Muss, sondern nur Schönheit.
-
...
-
Skym0sh0 schrieb:
Weil sieht schöner aus und ich sehe schneller woher die Variable kommt.
Das Problem löst sich mit "m"-Präfixen für Member (nein, das ist keine UN).
-
es gibt einige Spezialfälle, wo man den this Zeiger braucht, z.B. muß man beim gcc in Templates this->member schreiben, um auf Basisklassenmember zuzugreifen
-
Nexus schrieb:
Skym0sh0 schrieb:
Weil sieht schöner aus und ich sehe schneller woher die Variable kommt.
Das Problem löst sich mit "m"-Präfixen für Member (nein, das ist keine UN).
Das mache ich zusätzlich auch noch. Nur damit ich auch wirklich sicher gehe 
Nein, mal ohne Spass. Ich benutzte sowohl this wo immer es geht, als auch eine ordentliche Benennung meiner Variablen:
struct Foo { int myInt; float myFloat; }; class Bar { int m_int; Foo m_foo; public: float getDing() const { return this->m_foo.myFloat; } };Hab ich mir so angewöhnt und finde ich schön und angenehm.
Nachteile gibt es so keine, denn ich halte mich an diese Konvention und Speicherverbrauch ist heutzutage kein Argument mehr.
-
Skym0sh0 schrieb:
Nachteile gibt es so keine
Doch, Redundanz und schlechtere Lesbarkeit. Ein m-Präfix reicht, um eine Variable als Member zu identifizieren.
Und mischen von "m" und "my" ist ordentlich, oder wie?
-
Genauso wie structs und classen.
myXxx ist in structs und m_xXx ist in classen.Ich finds gut lesbar. Und da alle Member gleich benannt sind (halt am Anfang) muss ich nicht die gesamte Autovervollständigungsliste durchscrollen um meine Ziel zu finden.
Wie sagt, alles subjektive Empfindungen