Moin zusammen, ich habe ein Framework, in dem ich SDL_CreateRenderer aufrufe und die Adresse in einem Zeiger m_pRenderer speicher. An einem anderen Ort rufe ich mein Framework-Renderer auf und speichere diesen in einer zweiten Member m_pSpriteRenderer. Das heißt, ich habe einen Zeiger auf einen Zeiger, da ich ja nicht das Objekt hole sondern lediglich einen Zeiger darauf oder? Also darf ich m_pSpriteRenderer auch nicht freigeben, da die Adresse des Zeigers im Framework auch freigegeben wird korrekt? Ich müsste also im Framework m_pRenderer einfach freigeben, wenn ich das richtig verstehe.
Mike schrieb: > Das heißt, ich habe einen Zeiger auf einen Zeiger, da ich ja nicht das > Objekt hole sondern lediglich einen Zeiger darauf oder? Du musst dich schon entscheiden: Entweder hast du einen Zeiger auf das Objekt oder einen Zeiger auf einen Zeiger auf das Objekt. > Also darf ich m_pSpriteRenderer auch nicht freigeben, da die Adresse des > Zeigers im Framework auch freigegeben wird korrekt? Ich müsste also im > Framework m_pRenderer einfach freigeben, wenn ich das richtig verstehe. Du hast genau ein SDL_Renderer-Objekt, also kannst/darfst du das auch nur genau einmal freigeben, unabhängig davon, wieviele Zeiger du darauf hast.
nicht"Gast" schrieb: > Borislav B. schrieb: >> Genau dafür hat der liebe Gott den Smart-Pointer erfunden :-) > > In C? Für C wären das aber komische Variablennamen ("m_" kennzeichnet normalerweise Membervariablen).
Fritz schrieb: > Für C wären das aber komische Variablennamen ("m_" kennzeichnet > normalerweise Membervariablen). Kann sein, muss aber nicht. Viele Leute übernehmen irgend einen Schrott, weil sie denken, das ist cool und muss so gemacht werden. Wenn er C++ programmiert, warum dann nicht SFML? Die Warscheinlichkeit, dass er C++ programmiert ist nicht gering, aber wissen kann man es nicht.