Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » interaktion zwischen klassen

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 ] > 2 <
010
31.10.2004, 23:13 Uhr
~Zerstreuter
Gast



C++:
class Kreuz
{
public:
  Punkt & GetLocation();
  Punkt & GetSize();
  ...
}

Punkt & Kreuz::GetLocation()
{
  return itsLocation;
}

Punkt & Kreuz::GetSize()
{
  return itsSize;
}



Du übergibst z.Z. mittels GetLocation() eine Kopie von deinem itsLocation. Mit der oberen Änderung übergibst du eine Referenz. Der Vorteil ist, das du danach zum setzten der Große oder der Position einfach:


C++:
mauszeiger.GetSize().SetX(5);



schreiben kannst.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
01.11.2004, 10:19 Uhr
(un)wissender
Niveauwart


@lensflare
Sagen dir 3D-Programme wie Maya, 3D-Studio, usw. was?
Die erstellenDateinen in denen Koordinaten und andere Sachen stehen.
Das lesen dann z. B. 3D-Spiele aus und zeichen die Figuren.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
01.11.2004, 14:07 Uhr
typecast
aka loddab
(Operator)



Zitat von Lensflare:
@typecast:
Hmmm, wenn ich ein eine klasse hätte, die aus punkten ein ganzes haus in 3d zusammenstellt und das wären denk ich ein haufen punkte. Und ich würde einige punkte die zB ein fenster bilden ändern wollen, dann wären doch punktenamen sinnvoll.

Das Fenster wird aber mit dem haus bewegt und ist deshalb nicht unabhängig.

Oder wäre es besser, Klassen wie "Fenster" "Tür" usw. zu erstellen und aus ihnen die Klasse "Haus" aufzubauen?


Man macht in diesem Fall das zweite. Es wird eine eigene Klasse (oder auch nur eine andere Instanz der Klasse) verwendet. Dabei werden dann alle Punkte die zusammengehoehren in einen Verbund gesteckt.
Dann kann man die Einzelteile in eine uebergeordnete Klasse stecken und diese dann fuer das Zusammensetzen verantwortlich machen.


Die Oberklasse muss dann natuerlich gewisse Punkte kennen: Zum Beispiel um die Tuer ins Haus einzupassen, kann man 3 Punkte verwenden: Der Punkt fuer das obere Scharnier, der fuer das Untere und einen Punkt auf der anderen Tuerseite (also z.B. das Schloss).


Also kann man in der Haus-Klasse drei Variablen anlegen und schreibt dort die Indizies der Punkte rein. Der Rest der Punkte der Tuer ist egal, da man mit diesen genau das macht, was man mit diesen drei anderen Punkten auch gemacht hat.
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)

Dieser Post wurde am 01.11.2004 um 14:08 Uhr von typecast editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
01.11.2004, 14:46 Uhr
Lensflare



@(un)wissender:
ja, 3D-Gamestudio war meine erste "programmier"-erfahrung. Zum glück kenn ich jetzt auch C/C++ :-)

@typecast:
alles klar, das scheint vernünftig.

@Zerstreuter:
hört sich ganz nach dem an, was ich gesucht hab. Wenns auch noch geht, dann ist es perfekt! :o)
Ich mach mich gleich ans coden.
--
Wenn das Gehirn so einfach wäre, dass wir es verstehen könnten, wären wir so einfach, dass wir es nicht verstehen könnten.
(Emerson Pugh Trost)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
01.11.2004, 15:10 Uhr
Lensflare



@Zerstreuer:
genial! es geht! :o)

gibts irgend einen grund wieso ich nicht gleich alle methoden, die was zurückgeben zu einer referenz (?) machen sollte?
--
Wenn das Gehirn so einfach wäre, dass wir es verstehen könnten, wären wir so einfach, dass wir es nicht verstehen könnten.
(Emerson Pugh Trost)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
01.11.2004, 15:58 Uhr
typecast
aka loddab
(Operator)


Ja, gibt es. Wenn du lokale Variablen zurueckgibst (also Variablen, die in einer Methode deklariert wurden). Diese existieren nur innerhalb der Mehtode.
Wenn du da eine Referenz zurueckgibst, dann exstieriert die Speicherstelle an der das stand nach dem verlassen der Methode nicht mehr.

Ausserdem kann es ja auch sein, dass du eine Kopie der Rueckgabe benoetigst und nicht eine Referenz auf das urspruengliche Objekt.
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
01.11.2004, 17:01 Uhr
Lensflare



Ok, habs verstanden.
Danke.
--
Wenn das Gehirn so einfach wäre, dass wir es verstehen könnten, wären wir so einfach, dass wir es nicht verstehen könnten.
(Emerson Pugh Trost)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ 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: