ERLEDIGT
NEIN
NEIN
ANTWORTEN
8
8
ZUGRIFFE
401
401
EMPFEHLEN
-
Hallo zusammen!
Ich hätte da ne Frage zum Überladen des Operators <<. Und zwar so, dass man folgendes schriben kann: CC << "hello" << "world" ,wobei CC ein Klassenobjekt ist. Bis jetzt bin ich aber nur auf folgendes gestossen: cout << CC und als Code geschrieben etwas in diese Richtung :
PHP-Code:ostream& operator<<(ostream& Stream, const tBruch& B)
{
return Stream << B.GetZaehler() << "/" << B.GetNenner();
}
Kann ich anstatt ostream auch einfach den Klassennamen verwenden? Aber dann ist es kein ostreamobjekt mehr...
lg
-
Was willst du denn genau machen? Man kann das problemlos machen (was du da willst), is nur die Frage ob das der sinnvollste/schnellste/einfachste/beste weg ist
-
Also die ganze Aufgabenstellung geht so. Und mithilfe von count soll die Operatorenüberladung gemacht werden, damit es so funktioniert wie vorhni. Dazu hab ich auch noch eine Frage. Was macht die Fkt. count genau? Ich habe eben diese Unteraufgabe übersprungen, aber die Lösung mit der Überladung sollte diese Fkt. auch beinhalten.
Gegeben sei die Klasse CharCounter. Diese zählt das Auftreten von einzelnen Characters
innerhalb von Strings. Die Strings deren Characters gezählt werden sollen, werden mit der
Funktion count(…) übergeben. Das Array counts zählt das Auftreten der einzelnen
Zeichen. Die Häufigkeit eines Zeichens lässt sich mit der Funktion getCount(…) ermitteln.
Beim Konstruktor wird ein zusammenhängender Bereich (gemäss ASCII) von CharactersPHP-Code:class CharCounter {
private:
int* counts;
char first;
char last;
public:
CharCounter(char start=’a’, char stop=’z’); //start must be smaller than stop
~CharCounter();
virtual void count(const char* str);
int getCount(char c) const
{
if (c>=first && c <= last) {
return counts[c - first];
} else {
return 0;
}
};
};
definiert, die jeweils einzeln gezählt werden sollen. Nachfolgend ist die Implementation des
Konstruktors angegeben:Folgendes Aufrufbeispiel diene dem Verständnis:PHP-Code:CharCounter::CharCounter (char start, char stop) {
first = start;
last = stop;
int s = (int)stop – (int)start + 1;
counts = new int[s];
for (int i=0; i<s; i++) counts[i] = 0;
}
CharCounter CC(’a’,’z’); //Initialisiert Zähler für Zeichen a bis z
CC.count(“hello“);
CC.count(“world“);
std::cout << CC.getCount(’l’); //gibt „3“ auf derKonsole aus
-
12.01.09 15:45 #4
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Hi.
Falls ich dich richtig verstanden habe:
GrußCode cpp:1 2 3 4
CharCounter& CharCounter::operator<< (const char* s) { this->count(s); return *this; }
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
Ich glaub schon... Also dann sollte man so etwas schreiben können CC << "hello" << "hi" wieso muss man da nicht über ostream gehen? oder gilt das nur für cout selbst und nicht für den <<-Operator?
-
12.01.09 21:59 #6
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
Gut, ja nein, das war meine Frage, weil das bei den sonstigen Beispielen, die ich gesehen habe immer vorkam. Danke
Was macht die count Fkt. aber genau eigtl? Ich komme da bei der Formulierung der Aufgabenstellung nicht wirklich draus.
-
12.01.09 22:57 #8
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
Ah jetzt verstehe ich, den Unterscheidn zwischen count und getCount. count zählt die Häufigkeit jedes Buchstaben und getCount einen spezifischen, je nachdem, welchen man verlangt. Gut, dann programmier ich das mal, danke.
lg
Ähnliche Themen
-
operator << als Member überladen
Von AlexanderKiebler im Forum C/C++Antworten: 2Letzter Beitrag: 02.01.09, 15:48 -
Operator überladen undt const
Von LukeS im Forum C/C++Antworten: 4Letzter Beitrag: 16.05.07, 20:21 -
Überladen von operator+.... Funktionsweise?
Von bigfella im Forum C/C++Antworten: 3Letzter Beitrag: 11.07.05, 00:38 -
der >>operator überladen mit nem objekt
Von superharry im Forum C/C++Antworten: 19Letzter Beitrag: 27.01.05, 18:20 -
Index-Operator [] überladen
Von jccTeq im Forum .NET ArchivAntworten: 6Letzter Beitrag: 20.08.04, 11:59





Zitieren


Login






