.| Autor | Beitrag |
|---|---|
|
000 23.11.2001, 15:07 Mazze |
Hi! Aber in meinem C++-Buch sehe ich oft dieses hier: Es ist halt umständlicher mit dem new und delete! thx BattleTech-MOD: |
|
Profil || Suche |
|
001 23.11.2001, 21:33 Prefect |
Es ist eventuell flexibler, je nachdem was du willst. Ansonsten ist es langsamer und braucht mehr Speicherplatz. Solange du aber nicht vorhast, verschiedene States miteinander auszutauschen über Pointer brauchst du es nicht. Überhaupt ist dein Problem wahrscheinlich eher das Verständnis von Pointern. cu, Widelands - Gemütliche Aufbaustrategie, Free Software |
|
Profil || Suche |
|
002 24.11.2001, 00:44 Another1 |
Prefect, du bist in letzter Zeit aber echt mies drauf, .. Sei doch nich so direkt ;) egal, also Mazze, wie prf schon sagte is es bei diesem Beispiel ziemlich egal, bzw die nich-pointer variante ist sogar vorzuziehen --Another1 ...relaxing..atm =) |
|
Profil || Suche |
|
003 24.11.2001, 11:04 Mazze |
Wieso sollte ich Probleme mit Pointern haben? Ich wollte nur wissen, ob's besser ist. Da es ja eurer Meinung nach NICHT besser ist, werd ich's halt normal machen! --BattleTech-MOD: |
|
Profil || Suche |
|
004 24.11.2001, 12:35 Another1 |
Es kommt ja eben drauf an --Another1 ...relaxing..atm =) |
|
Profil || Suche |
|
005 24.11.2001, 12:39 Mazze |
Hm.... BattleTech-MOD: |
|
Profil || Suche |
|
006 24.11.2001, 16:09 Another1 |
also, kein Beispiel wo es sinvoll ist Speicher zu alloziieren, aber pointer zu verwenden class Pic ... class BasisA : public Basis public: ok, auch blödes Beispiel, aber du erkennst sicher wozu es sinvoll ist Pointer zu verwenden, auch wenn das nich dem entspricht was du wissen wolltest *hä?* --Another1 ...relaxing..atm =) Dieser Beitrag wurde am 24.11.2001 um 16:10 von Another1 bearbeitet. |
|
Profil || Suche |
|
007 24.11.2001, 16:10 Prefect |
Ich glaube doch, daß es da gewisse Mißkonzeptionen gibt. Du reservierst in beiden Fällen Speicher. Nur im direkten Fall wird der Speicher als Teil der Klasse BasisB reserviert, während im indirekten Fall mit new der Speicher implizit reserviert wird, und in BasisB wird lediglich Speicher für den Pointer reserviert. Ob du Pointer brauchst oder nicht hängt davon ab, wie flexibel du sein willst. Aber das habe ich ja eigentlich schon gesagt. Um ein bißchen spezifischer zu werden:
Im indirekten Fall könnte sie auch so aussehen:
Damit würdest du dir das Hin- und Herkopieren ersparen, was besonders dann vorteilhaft ist wenn State sehr groß ist. Dafür mußt du aufpassen, weil ja newstate in den Besitz der BasisB-Instanz übergeht, d.h. der Programmteil, der SetState() aufruft, darf newstate nicht mehr per delete löschen. Zudem muß der aufrufende Programmteil newstate schon per new auf dem Heap alloziiert haben. cu, Widelands - Gemütliche Aufbaustrategie, Free Software |
|
Profil || Suche |
|
008 24.11.2001, 16:24 Mazze |
Achso...jo..ok! BattleTech-MOD: |
|
Profil || Suche |

