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

JossBoss

Treue Seele

  • »JossBoss« ist der Autor dieses Themas

Beiträge: 182

Wohnort: Luxemburg

  • Private Nachricht senden

1

02.08.2005, 21:34

Wan return *this und was ist virtual??

also wie die überschrift schon sagt, wollte ich wissen , wann man "return *this" benuttzt und was die Klassen-funktion "virtual" soll..
danke für eure herzliche Hilfe Jungs :) :) :) :)

Dave

Alter Hase

Beiträge: 757

Wohnort: Berlin

  • Private Nachricht senden

2

02.08.2005, 21:49

jede methode einer klasse besitzt einen this zeiger, welcher immer auf das exemplar der klasse, von dem die methode aufgerufen wurde zeigt. mit "return *this" gibst du also dieses exemplar einfach nur als rückgabewert zurück.

das schlüsselwort "virtual" wird in zusammenhang mit polymorphie auf methoden einer klasse verwendet. es bewirkt, dass für die methode ein eintrag in einer art lookup tabelle erstellt wird und, dass jedesmal wenn diese methode aufgerufen wird, nachgeschaut wird, welche methode tatsächlich aufgerufen werden soll. abgeleitete klassen können somit bereits vorhandene methoden ihrer basisklassen überschreiben. die verwendung von virtual vergrößert das objekt minimal um einen zeiger und verlangsamt den methoden aufruf auch etwas, da erst die adresse über die vtable ermittelt werden muss.

google einfach ein wenig oder lies in einem guten c++ buch nach und du hättest dir diese fragen auch leicht selber beantworten können.

Samuel G.

Treue Seele

Beiträge: 110

Wohnort: Stuttgart

Beruf: Schüler

  • Private Nachricht senden

3

12.08.2005, 15:47

Beitrag

Dave hat aber nur eine Bedeutung von virtual beschrieben. Die andere ist die fuer virtuelle Funktionen.


Samuel G.
Quak

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

4

12.08.2005, 16:19

Re: Beitrag

Zitat von »"Samuel G."«

Dave hat aber nur eine Bedeutung von virtual beschrieben. Die andere ist die fuer virtuelle Funktionen.

Hat er nicht genau das beschrieben??

"return *this;" kann man beispielsweise bei der Überladung von Operatoren wie +=, -=, *= und /= benutzen, die das veränderte Objekt zurückgeben. Dann sollte man aber mit Referenzen arbeiten, damit es schneller ist.

Samuel G.

Treue Seele

Beiträge: 110

Wohnort: Stuttgart

Beruf: Schüler

  • Private Nachricht senden

5

18.08.2005, 14:34

Beitrag

hmm. nee, ich glaube er hat virtuelle Klassen beschrieben (aber du hast recht, er koennte vielleicht auch virtuelle Funktionen beschrieben haben...)

@JossBoss: Lies einfach Stroustrup.
Quak

Dave

Alter Hase

Beiträge: 757

Wohnort: Berlin

  • Private Nachricht senden

6

18.08.2005, 16:05

es gibt keine virtuellen klassen in c++.

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

7

18.08.2005, 20:21

Man kann den konstruktor rein virtuel machen :)
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

8

18.08.2005, 21:19

Zitat von »"Dave"«

es gibt keine virtuellen klassen in c++.


Das ist so nicht ganz richtig. "Klassen, die reine virtuelle Funktionen enthalten, heißen abstrakte Basisklassen, da es nicht möglich ist, ein Objekt dieses Typs zu erzeugen." Das große C++ Buch.

Dave

Alter Hase

Beiträge: 757

Wohnort: Berlin

  • Private Nachricht senden

9

19.08.2005, 08:56

das sind aber abstrakte klassen und keine virtuellen...
man könnte möglicherweise klassen deren funktionen alle virtuell sind als virtuelle klassen bezeichnen, aber im prinzip ist das ja nichts wesentlich anderes als ich oben beschrieben habe...

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

10

19.08.2005, 10:31

ja stimmt schon, aber ich wollte Missverständnisse ausschließen :wirbel:

Werbeanzeige