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

11

22.02.2015, 20:53

Danke Leute, hat endlich Klick gemacht :thumbsup:

Meine eigentliche Frage war eigentlich nur die, zu was genau m_pGeschwindigkeit gehört, und hab grad selber gemerkt, dass die Frage eigentlich sowas von unnötig war :dash: :dash: :dash:
Gehört natürlich zu der Klasse, die Kopiert wird (da wir es ja im copyconstructor der Klasse schreiben), in dem Falle CRaumschiff, und später eben "Jaeger". Ich habe jetzt gedacht, dass gehört zur Referenz, die wir übergeben, aber ist ja total bescheuert. Zur Referenz gehört ja "rhs.m_pGeschwindigkeit" :D

-m_pGeschwindigkeit von Jaeger bekommt neuen Speicher zugewiesen
-Der Wert dieses Speichers wird vom Wert des Zeigers m_pGeschwindigkeit, der Referenz, die wir übergeben haben, bestimmt (Nur Wert, nicht Adresse)

Hätte noch eine Interessensfrage: wird mit new int oder überhaupt wenn der pointer ein neues Ziel hat, automatisch der Wert, der letzten zugewiesenen Adresse gelöscht? Bevor ich das geschrieben habe, hatte m_pGeschwindigkeit ja noch eine andere Zeigeradresse. Ist diese jetzt nicht freigegeben oder wird, sobald man bei einem Zeiger wo anders drauf pointet, die ursprüngliche Adresse freigegeben?

Extra Danke an euch iSmokiieZz un birdfreeyahoo, beste Männer :D

birdfreeyahoo

Alter Hase

Beiträge: 756

Wohnort: Schorndorf

Beruf: Junior Software Engineer

  • Private Nachricht senden

12

22.02.2015, 21:43

Ich weiß nicht ob ich die Frage richtig verstehe, aber wenn du einen Zeiger umpointest wird die alte Adresse nicht freigegeben. Das musst du extra mit delete veranlassen. Ist in dem Fall auch nicht nötig weil das andere Objekt noch draufzeigt.

Der Wert den der Pointer nach new int hat ist eine neue Adresse, der Inhalt dort ist was davor drinstand von einem alten Programm, also sofort etwas sinnvolles reinschreiben, wie hier die Geschwindigkeit.

m_pGeschwindigkeit von Jaeger bekommt keinen neuen Speicher, Jaeger ist nämlich die Referenz die übergeben wird. Das neue temporäre Objekt in Funktion bekommt das zugewiesen ;)