kelog

Gdzieś mi to mignęło na reddicie :)

Spine

@Pijak: W destruktorze rodzica musisz zniszczyć dzieci ;)

furious programming

@Spine: no ale to nie jest unikalna cecha tylko języka C++. Choć brzmi śmiesznie. :]

Pijak

@Spine: Z reguły dzieje się to automatycznie i jest także w innych językach, PHP, pajton

Spine

No tak, ale jak zmodyfikujesz referencję do rodzica, to sprawia wrażenie (dla piszącego), że najpierw skasowałeś rodzica ;) Chociaż pewnie garbage collector i tak najpierw wciąga dzieci...

jarekr000000

@Spine dobry GC uwala całą rodzinkę na jeden strzał. W C++ zresztą też można GC mieć i destuktorów nie pisać.

scibi92

@jarekr000000: hę? W C++ GC? Chodzi o smart pointery?

jarekr000000

@scibi92: tak są różne smart pointery, a nawet prawdziwe GC -> https://www.hboehm.info/gc/

Hispano-Suiza

@Pijak: jest także w innych językach, PHP, pajton akurat obydwa te przypadki to podjęzyki dla podludzi.

no_solution_found

@Hispano-Suiza: jak ja lubię takie merytoryczne argumenty :D

MasterOf

@Hispano-Suiza: Ty to taka Magda Gessler wśród programistów. Wszystko krytykuje j nikogo nie lubi. Jedynie rewolucji nie robisz :D

Hispano-Suiza

@no_solution_found: z php heheszkuje, bo tak wypada :-) a o tym drugim juz kiedys napisalem, i zdania nie zmienie ;-)
@MasterOf nie mam lokow, i otylosci wiec daleko mi do Madzi :/ Krytykuje to co mi z jakichs wzgledow nie odpowiada. Wychwalam to co w moim odczuciu jest dobre. Nie odbiegam tu zachowaniem od innych wyrazajacych swoje zdanie :P

vpiotr

Z C++ ten żart może być niezrozumiały bo są shared_ptr, ale w Turbo Pascalu to było do tego stopnia prawdziwe, że dopiero w kontekście Javy usłyszałem że jest coś takiego jak wyciek pamięci. W Delphi zresztą też używałem interfejsów głównie dlatego, że nie każdy w zespole rozumiał tę regułę z żartu.

TomRiddle

@vpiotr: A przypadkiem jak w Delphi się nie zrobiło coś.Free; to leciał AccessViolation?

vpiotr

@TomRiddle: może w tutorialach. W kodzie produkcyjnym FreeAndNil.

vpiotr

@TomRiddle: potem ludzie zaczęli twierdzić że to antypattern. Może w projektach jednoosobowych jestem w stanie się z tym zgodzić. Ale w kodzie w którym ktoś coś tam trochę zrozumiał FreeAndNil było nieocenione. Ciekaw jestem ile z tych AV które się potem pojawiały w IDE (Delphi / Lazarus) było spowodowane tym wyidealizowanym poglądem wspieranym m.in. przez Nicka Hodgesa.

Azarien

@vpiotr FreeAndNil ma mylącą nazwę, powinno być NilAndFree - co zresztą zostało ukazane w tym artykule :) // osobiście uważam że FreeAndNil nie jest potrzebne jeśli obiekt zaraz i tak wypadnie z zasięgu, ale jeśli to np. składowa klasy, wolę żeby w razie błędu kod się wysypał na znilowanym obiekcie (bo widać co się stało) niż żeby działy się dziwne rzeczy zupełnie gdzie indziej spowodowane odwołaniem do zniszczonego obiektu.

PerlMonk

@Spine: Teraz wiem jak można straszyć dzieci: "Garbage Collector przyjdzie i cię wciągnie". :D

Silv

Uważam ten żart za wyjątkowo nieśmieszny oraz niesmaczny. Przy okazji dla niektórych osób może okazać się obraźliwy. Uwzględniam to, że może to być nazwane czarnym humorem lub też może być tłumaczeniem z angielskiego – obie rzeczy nie mają wpływu na moją ocenę.