Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

11

20.06.2007, 21:25

Also:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class myclass
{
   //Klassendeklarationen...

};


myclass foo ()
{

   myclass class1; // eine instanz von myclass wird erstellt.

   
   return class1; // Die Instanz wird zurückgegeben und so muss er die ganze Instanz verschieben.


}


int main ()
{

  myclass class2 = foo (); // jetzt kannst du dir die Instanz der Klasse, die du in foo () erstellt hast zurückgeben lassen. (die main ist die aufrufende Funktion).


   return 0;
}


Ich denke, dass es vieleicht ein wenig ungeschickt ausgedrückt ist. Die aufrufende Funktion ist die main und die erstellte Instanz wird per Rückgabewert an class 2 übergeben.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

12

20.06.2007, 21:29

um genau zu sein: es wird eine kopie der instanz erzeugt und die wird zurückgegeben.

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

13

20.06.2007, 21:37

Genau, und da kommt der Vorteil von new ins Spiel, mit der kann man ja eine Instanz auf dem Heap erstellen und nur den Zeiger zurückgeben. Es wird dann nicht eine ganze Instanz einer Klasser kopiert, sondern nur einen Zeiger darauf, was (in den meisten Fällen) mit weniger "Aufwand" verbunden ist.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

14

20.06.2007, 21:38

hängt vom typ des objetks ab ob das ein vorteil ist. die variante mit new und zeiger zurückgeben würd ich persönlich, um ehrlich zu sein, vermeiden so lange es nur geht.

15

20.06.2007, 21:48

Ah, I see.
Ich muss wohl oder übel zugeben, das ich teilweise auf dem Schlauch stand.
Ich dachte er meinte das man die Instanz per Parameterliste an die Funktion übergibt, also:

int main ()
{
....
...
//eine Funktion wird aufgerufen der die Instanz einer Klasse übergeben //wird
Funktion (Instanz);

retrun 0;
}<< So war das aber nie gemeint, ich stand wohl echt etwas auf den Schlauch.

Herzlichen Dank für die Erklärungen

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

16

20.06.2007, 21:56

Du hast zwar was falsch verstanden gehabt, in vielen Fällen lohnt es sich aber tatsächlich, eine Instanz per Parameterliste zu übergeben und dann zu nutzen...
1. der Rückgabewert bleibt für andere Informationen frei
2. man vermeidet das ständige Objektkopieren (das meiste davon wird allerdings eh wegoptimiert)
3. man kann auch mehr als eine Instanz verarbeiten.

17

20.06.2007, 21:56

Jetzt hätte ich noch eine persönliche Frage an euch:
Da ich damit, also mit der Programmierung und dem lesen des Buches erst, naja seit knapp 3 Monate begonnen habe(zwischendurch musste ich kleine Pausen einlegen, deswegen befinde ich mich erst in Kapitel 7) wollte ich von euch wissen, da es ja nicht nur den Anschein hat, das ihr euch mit der Programmierung sehr gut auskennt, wie lange ihr euch schon mit der C++ oder anderen Programmiersprachen beschäftigt und wie oft ihr das Buch gelesen habt.

Ich habe mir nämlich vorgenommen nachdem ich mit diesem Buch fertig bin, es nochmals zu lesen und erst dan mit 3D-Spieleprogrammierung von David Scherfgen zu beginnen.

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

18

20.06.2007, 21:57

1. hab vor ~3 Jahren angefangen
2. hab das Buch kein einziges mal gelesen, dafür aber andere Bücher ;)

19

20.06.2007, 22:00

Die Frage hab ich gestellt, weil ich natürlich noch nicht alles zu 100% behärsche. Ich hoffe, das dies "normal" ist, oder habt ihr alles gleich zu Beginn verstanden?!

Was für andere Bücher meinst du, sind diese für Neulinge konzipiert oder eher für Fortgeschrittene?

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

20

20.06.2007, 22:22

Also da du ja nicht der erste Mensch in diesem Forum bist kann ich dir schonmal ne kleine Linksammlung geben, in der du nach Lust und Laune lesen kannst (ich erwarte nicht, dass du alles liest ;) )

https://www.spieleprogrammierer.de/phpBB2/viewtopic.php?t=1189
https://www.spieleprogrammierer.de/phpBB2/viewtopic.php?t=3778
https://www.spieleprogrammierer.de/phpBB2/viewtopic.php?t=6674
https://www.spieleprogrammierer.de/phpBB2/viewtopic.php?t=6038
https://www.spieleprogrammierer.de/phpBB2/viewtopic.php?t=5835
https://www.spieleprogrammierer.de/phpBB2/viewtopic.php?t=5227
https://www.spieleprogrammierer.de/phpBB2/viewtopic.php?t=7309
https://www.spieleprogrammierer.de/phpBB2/viewtopic.php?t=5840

Wenn du dann wieder Fragen hast kanns weiter gehen...

Werbeanzeige