
C++ Alokacia a dealokacia pamati
Caute ucim sa C++ sorry za zaciatocnicke otazky ale rad by som si par veci ujasnil.
V C++ si programator moze zvolit kde alokuje pamat, ci na stacku alebo na halde. takze prva otazka:
1. kedy zvolit stack a kedy heap?
2. Dalsia vec chcem si ujasnit aky je rozdiel medzi tymito 3omi instanciaciami objektov?
auto objekt1 = Trieda();
objekt1.Metoda();
auto objekt2 = new Trieda();
objekt2->Metoda();
auto objekt3 = &Trieda();
objekt3->Metoda();
Prvy vytvara objekt na stacku. Druhy na halde a treti tiez na halde? Takze druhy a treti zapis je eqvivalentny?3. kedy uvolnovat pamat? Ako zabranit tomu aby nastali memory leaky. Odkedy sa ucim C++ tak som zatial na ziadny problem nenarazil a to vobec nevolam delete. Takze aj v C++ sa uvolnuje pamat automaticky? Kedysi som programoval v Delphi a tam sa kazdy objekt musel uvolnit rucne procedurou Free() inak spadla cela aplikacia, take nieco sa mi v C++ este nestalo, preco?
4. kedy pouzit shared_pointery
5. aku knihu o C++ mi viete doporucit? Idealne aby bola podrobna, aktualna (C++11).