Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Zarządzanie pamięcią(ogolnie) (ale też odnośnie obiektów w grze) - parę pytań

Ostatnio zmodyfikowano 2014-05-07 13:26
Autor Wiadomość
colorgreen19
Temat założony przez niniejszego użytkownika
» 2014-05-03 19:53:24
nie mów prosze, że nie wiem co robie (chociaż akurat z twojego, doświadczonego programisty, punktu widzenia to ja nie wiem co robie), ale mam takie widzimisie, że zrobiłem to tak, a dopiero poźniej to zapakuje w destruktor. Rozumiem, że dążysz abym uzyskał taki zapis:
C/C++
ParticleEmitter::~ParticleEmitter()
{
    ClearParticles();
}
Jesli już to mam (chyba że nie o to chodzi) to teraz: (tu faktucznie nie wiem co robie, bo juz jestem tak zdezorientowany, że...)
tak:
C/C++
delete emitter;
czy tak:
C/C++
emitter.~ParticleEmitter();
?

(czy to może bez znaczenia?)
P-109206
Wrzud
» 2014-05-03 20:10:54
Panie wszechwiedzący, skoro wiesz co robisz to czego od nas oczekujesz? Pomocy, przecież ty wiesz lepiej.

Wracaj do nauki podstaw języka.
P-109210
colorgreen19
Temat założony przez niniejszego użytkownika
» 2014-05-03 20:24:36
1) nigdy nie bawiłem się zarządzaniem pamięcią
2) nie jestem wszechwiedzący. napisałem, że wiem co robie odnośnie usytułowania w kodzie tej linijki. Rozumiem że forum nie jest po to, aby dawac gotowe kody, ale (zauważyłem to przy różnych tematach), że pekfos daje takie zdawkowe odpowiedzi tak jak mi tu, a jak człowiek jest juz zmęczony problemem, a widzi że od niego wymaga się intensywnego myślenia nad swoim problemem, zdawkowo go kierujać to ( o ile..) przychodzą mu do głowy jakies rozwiązania, są one conajmniej głupie.
3) mimo wszystko dzięki za to, bo było trudno, ale jednak się dostrzegło swoją głupotę, no bo jak przeciez moge skasować zwykły obiekt deletem.
4) mimo to jednak bardzo prosze o żetelną odpowiedź (tak/nie): mam wywoływać jawnie destruktor?
P-109213
Wrzud
» 2014-05-03 20:47:55
Jeśli emitter jest zdeklarowany dynamicznie to należy usunąć go przez delete, który wywoła jego destruktor i zwolni używaną pamięć.
P-109217
Chlorek
» 2014-05-03 21:01:42
Co do zabezpieczenia pamięci (kwestia dynamicznego alokowania pamięci) - użyj sprytnych wskaźników (czy jak to się tam po polsku zwie). Są to szablony które automatycznie usuwają z pamięci wskaźnik, gdy wychodzi on ze scope'a. To wiele ułatwia.

Destruktora nie wywołuje się jawnie (nigdy nie próbowałem, da się w ogóle?).
P-109218
pekfos
» 2014-05-03 21:20:26
Destruktora nie wywołuje się jawnie (nigdy nie próbowałem, da się w ogóle?).
Da się i można, ale nie tu.
P-109225
CodeMeister
» 2014-05-03 22:29:05
użyj sprytnych wskaźników

Lepiej żeby najpierw nauczył się podstaw o wskaźnikach i doczytał o klasach a dopiero później niech się bierze za bardziej zaawansowane rzeczy
P-109229
colorgreen19
Temat założony przez niniejszego użytkownika
» 2014-05-03 22:33:14
podstaw nie musze doczytywać, tu poprostu przez nieuwagę i zmęczenie popełniłem tak karygodne błędy.
macie na mysli auto/shared_ptr?
P-109230
1 « 2 » 3 4
Poprzednia strona Strona 2 z 4 Następna strona