Wpis z mikrobloga

#programowanie #cpp #cplusplus

Załóżmy że mam taką sytuację:

void foo(SomeObject* o){}
void bar(){
SomeObject* o = new SomeObject();
foo(o);
}

Funkcja bar tworzy obiekt i przekazuje go do foo.

Czyli o w funkcji foo jest u mnie wskaźnikiem do jakiegoś tam miejsca w pamięci programu. Mogę sobie dowolnie edytować zmienne w obiekcie o i zmiany te są widoczne dla funkcji bar.

Chcę teraz, jeśli funkcja foo uzna to za stosowne, utworzyć nową instancję klasy we wskaźniku o. Czyli w foo wyglądałoby to tak:

o = new SomeObject();
Niestety, z tego co próbuję, nie bardzo to działa. Jeśli w foo utworzę nową instancję SomeObject, to bar ciągle widzi "swoją" instancję zamiast tej nowej. Ma ktoś pomysł co może być nie tak?
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach