Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Verstehe den quelltext nicht

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
04.09.2005, 14:22 Uhr
Whinegum



Hi. Ich bringe mir derzeit anhand eines Buches C++ bei. Jetzt allerdings habe ich ein problem, dass sih in folgendem Quellcode versteckt:
www.garados.gmxhome.de/help.txt
es geht um die zeilen, die mit "Point" Beginnen. z.B.:
Point GetUpperLeft() const { return itsUpperLeft; }

was hat es dort immer mit "Point" auf sich? Steht es im Zusammenhang mit der Klasse point? Ich kann jedoch nirgendwo sehen, dass eine Instanz erzeugt worden ist.
Auch wenn ich meine Frage evtl lächerlich findet, ist dies ernst gemeint. Ich bin halt noch ein blutiger Anfänger.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
04.09.2005, 15:02 Uhr
Spacelord
Hoffnungsloser Fall


Die Klasse Rechteck hat 4 Point Objekte als private Attribute um das Rechteck darzustellen.
Sinnvoller wäre es sicherlich einen Punkt zu haben und zusätzlich die Länge und Breite des Rechtecks zu halten aber das ist ne andere Sache....
Da die privaten Attribute von ausserhalb nicht ansprechbar sind(und auch nicht sein sollen!) stellt die Klasse Getter-Methoden zur Verfügung um an die Werte der Attribute zu kommen. Der Rückgabewert dieser Methoden ist dann ein Objekt der Klasse Point,welches wiederum eine Kopie(!) von einem der Attribut-Points ist.
Dann sind da noch die Setter-Methoden.Diese dienen dazu die Werte der privaten Attribute zu setzen.
Falls du dich fragst wozu der ganze Aufwand gemacht wird,anstatt die Attribute einfach public zu machen,dann stell dir einfach vor dass die Punkte nur in einem bestimmten Bereich liegen dürfen.
Wenn die Attribute dann public wären könnte aber jeder von "aussen" den Punkten beliebige Werte zuweisen.Es läge also in der Hand des Benutzers der Klasse dafür zu sorgen dass die Punkte nur mit "sinnvollen" Werten belegt werden.Das ist aber eine Verletzung der Kapselung der Klasse.Die Klasse selber ist dafür zuständig dass die Attribute von konkreten Instanzen zu jedem Zeitpunkt nur sinnvolle Werte enthalten.
Um bei dem Beispiel zu bleiben könnten also die Setter-Methoden prüfen ob der als Parameter übergebene Punkt einen gültigen Wert repräsentiert und diesen dann entweder dem Attribut zuweisen oder halt nicht.
Ich hoffe das ist so halbwegs klar beschrieben?
Man tendiert im Laufe der Zeit dazu bestimmte Sachverhalte als "selbstverständlich" anzusehen.

MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
04.09.2005, 15:02 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


also class Point definiert eine Klasse namens Point. und Point GetUpperLeft()... ist eine Funktionsdeklaration (und da die implemenation dahinter kommt auch -definition) die als Rückgabewert eine Instanz von der Klasse Point liefert.


Bearbeitung:

verdammt zu langsam


--
class God : public ChuckNorris { };

Dieser Post wurde am 04.09.2005 um 15:03 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
04.09.2005, 15:33 Uhr
Whinegum



Achso... Und die Point-Objekte sind Instanzen der Klasse Point?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
04.09.2005, 15:43 Uhr
Spacelord
Hoffnungsloser Fall


Ja
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
04.09.2005, 17:12 Uhr
Whinegum



Ich glaube ich hab es verstanden:-) Danke an Spacelord & FloSoft
Bye, bis zum nächstem Problem

Dieser Post wurde am 04.09.2005 um 17:13 Uhr von Whinegum editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: