Kümmelkorn
Aktives Mitglied
Thread Starter
- Dabei seit
- 06.10.2008
- Beiträge
- 1.941
- Reaktionspunkte
- 127
Hallöle,
ich habe eben angefangen, endlich wieder ernsthaft mit C++ anzufangen. Da ich C und Java schon "kann", dachte ich, dass es eigentlich gar nicht so schwer sein könne.. Tja.
Hab mal ein kleines OOP-HalloWelt-Beispiel gebastelt:
Damit habe ich noch 2 Probleme:
1. getText (Getter für einen String) liefert mir bisher afaik die direkte Instanz von einer privaten Variablen -> schlecht! Allerdings finde ich keine ordentliche copy() Funktion in C++ Irgendwie finde ich über Google nur strcpy (das ist C) und copy, was aber bei 3 Parametern auch eher an C erinnert. Gibts da nix besseres?
2. Ich möchte << überladen. Leider liefert mir meine operator<< nur die Adresse des Textes. Dabei meine ich, alles richtig gemacht zu haben. Kann mir jemand erkären, warum das falsch ist und wie ich es verbessere?
Gruß, Micha
PS: Ich hab die Header-Datei von der CPP eigentlich sauber getrennt, aber ich wollte es fürs Forum etwas kürzer schreiben
ich habe eben angefangen, endlich wieder ernsthaft mit C++ anzufangen. Da ich C und Java schon "kann", dachte ich, dass es eigentlich gar nicht so schwer sein könne.. Tja.
Hab mal ein kleines OOP-HalloWelt-Beispiel gebastelt:
Code:
#ifndef MyProgramm
#define MyProgramm
#include <iostream>
#include <string>
class HalloWelt {
public:
HalloWelt(const std::string& t);
std::string getText() const;
friend std::ostream& operator<< (std::ostream&, HalloWelt);
private:
std::string text;
};
HalloWelt::HalloWelt(const std::string &t) {
text = t;
}
std::string HalloWelt::getText() const {
return text;
}
std::ostream& operator<< (std::ostream& out, HalloWelt hw) {
return out << hw.getText();
}
#endif
Damit habe ich noch 2 Probleme:
1. getText (Getter für einen String) liefert mir bisher afaik die direkte Instanz von einer privaten Variablen -> schlecht! Allerdings finde ich keine ordentliche copy() Funktion in C++ Irgendwie finde ich über Google nur strcpy (das ist C) und copy, was aber bei 3 Parametern auch eher an C erinnert. Gibts da nix besseres?
2. Ich möchte << überladen. Leider liefert mir meine operator<< nur die Adresse des Textes. Dabei meine ich, alles richtig gemacht zu haben. Kann mir jemand erkären, warum das falsch ist und wie ich es verbessere?
Gruß, Micha
PS: Ich hab die Header-Datei von der CPP eigentlich sauber getrennt, aber ich wollte es fürs Forum etwas kürzer schreiben
Zuletzt bearbeitet: