hallo. kennt jemand eine seite oder ein buch zur operatorenüberladung? am besten wo es gut, einfach und verständlich erklärt wird? speziell die stream operatoren >> und << finde da im netz nichts passendes zu. oder kann mir das hier jemand kurz verdeutlichen`? danke
Gast
#2921887
google: "c operator überladen <<" Suchmaschinen sollten eigentlich allgemein bekannt sein.
ist cpp und ja ich kenne google. allerdings kommt da nichts brauchbares, vorallem nicht zum streamoperator
was genau willst du denn wissen? Operatorüberladung ist in der Regel nichts weiter als eine Methode mit einem vorgegebenen Prototypen, die im Programm mit einfacher Syntax aufgerufen werden kann.
Gast
#2921926
sry aber ich checke die Frage dann überhaupt nicht. Geht es jetzt ums Überladen der um die Grundlagen von Streamoperator.
es geht um zb sowas:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
frage ist: wozu braucht man das, bzw was kann man damit machen? und was macht der programmausschnitt?
Carolin .. schrieb: > frage ist: > > wozu braucht man das, bzw was kann man damit machen? > und was macht der programmausschnitt? Na, ja. Wenn du ein Ratio Objekt hast
1 | |
2 | |
3 | |
4 | |
dann möchtest du die ja auch mal irgendwo ausgeben lassen ...
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
... so wie du auch andere Dinge ausgeben lässt. Und dann kommt eben der
Operator ins Spiel, in dem festgelegt ist, was denn dieses << im
Zusammenhang mit einem Ratio Objekt eigentlich tun soll.
> und was macht der programmausschnitt?
Lies halt den Code.
Jeder der in der ersten Stunde C++ aufgepasst hat ...1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
sollte eigentlich wissen, was in
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
passiert. Nur weil die ganze Funktion irgendwas mit 'operator' heisst, funktioniert ja die Ausgabe auf einem stream auch nicht anders. In der ersten Stunde C++ hast du halt auf ein bereits fertiges stream Objekt, den std::cout, ausgegeben und hier kriegt die Funktion den Stream dann eben als Parameter mitübergeben. Aber stream ist stream, und auf den gibt man mit << aus.
Das Ziel der ganzen Aktion ist es, die Klasse Ratio folgendemaßen verwenden zu können:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
Ich habe hier mal die fehlenden Teile der Klasse ausgefüllt, damit ein ablauffähiges Programm entsteht:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |
52 | |
53 | |
54 | |
55 | |
56 | |
57 | |
58 | |
59 | |
60 | |
Die couts in der Funktion operator>> sind übrigens Unfug. Stell dir vor, die Brüche würden nicht von cin, sondern zu Tausenden aus einer Datei gelesen ...
super, danke Yalu und karl heinz, dass hat mir erstaml weitergeholfen.
kurze frage noch..
was macht das "abs"
int a=abs(zaehler), b=abs(nenner), tmp;
?
Carolin .. schrieb: > kurze frage noch.. > was macht das "abs" Ja, du hast recht, die abse sind hier überflüssig.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.