NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: C++ OOP inštancia triedy

V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar

Člen
Avatar
:25.12.2016 22:43

Nazdar,

prave som zacal s OOP v C++, nasiel som velmi dobry material na zaciatok, ale nejak som tam nepochopil jednu vec. Pri instancii triedy mozme pouzit 3 "metody"

Dynamicku instanciu, staticku a automaticku.
Dynamicka je vytvorena len pokial ju nezmazeme, staticka pocas celeho behu programu, kym program neskonci, ale ako je to s automatickou?

Dakujem za odpovede

 
Odpovědět
25.12.2016 22:43
Avatar
petr.dar
Člen
Avatar
petr.dar:27.12.2016 15:59

podle mě je prostě:
dynamická: int * i = new int;
statická: static int i;
a automatická je prostě: int i;
kolegové budou možná přesnější.

 
Nahoru Odpovědět
27.12.2016 15:59
Avatar

Člen
Avatar
Odpovídá na petr.dar
:27.12.2016 16:11

Ano,
chapem ako sa vytvaraju, dokazem to aj pouzit, mna len cisto teoreticky zaujima ako dlho bude v pamäti ulozena automaticka instacia, ci nie je vyhodnejsie pouzivat dynamicku, aby som uvolnil miesto v pamäti hned, ked uz tu triedu nebudem potrebovat pozuit

 
Nahoru Odpovědět
27.12.2016 16:11
Avatar
petr.dar
Člen
Avatar
petr.dar:27.12.2016 16:28

všechno záleží na situaci, na jak dlouho tu proměnnou budeš potřebovat. Danamická instance bude uvolněna až do zavolání delete a automatická bude uvolněna až se ukončí příkazy v bloku.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
27.12.2016 16:28
Avatar

Člen
Avatar
Odpovídá na petr.dar
:28.12.2016 0:15

Presne toto som potreboval vediet, ďakujem

 
Nahoru Odpovědět
28.12.2016 0:15
Avatar

Člen
Avatar
Odpovídá na petr.dar
:28.12.2016 0:27

Odporucas pouzivat dynamicku vsade? Je to predsa len lepsie pre RAMku, aspon bude cistejsia, ci?
Nemyslim pripad, ked potrebujem nieco pocas celeho behu programu, ale vsetky ostetne pripady

Editováno 28.12.2016 0:28
 
Nahoru Odpovědět
28.12.2016 0:27
Avatar
petr.dar
Člen
Avatar
petr.dar:28.12.2016 0:41

většinou stačí automatická.

 
Nahoru Odpovědět
28.12.2016 0:41
Avatar
Odpovídá na
Luboš Běhounek Satik:28.12.2016 10:24

Odporucas pouzivat dynamicku vsade?

Právě naopak, dynamickou používat jen kde je to nutné, musíš si hlídat její uvolňování a můžou vznikat memory leaky + může zvyšovat fragmentaci paměti.

Používání automatické je obvykle o něco rychlejší, protože jednak alokátor nemusí hledat dostatečně velké místo pro tvoji proměnnou a druhak šaháš převážně na stack, kde všechny ty data jsou u sebe, takže je větší šance, že budou přednačtená v procesorové keši.

Nahoru Odpovědět
28.12.2016 10:24
https://www.facebook.com/peasantsandcastles/
Avatar

Člen
Avatar
Odpovídá na Luboš Běhounek Satik
:28.12.2016 14:38

Aha, budem na to pamätat. dakujem

 
Nahoru Odpovědět
28.12.2016 14:38
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.