Re: Variables ve funkcích
Napsal: 09 říj 2019, 23:49
Ona ta rezie casto zase neni tak velka, par bytu u objektu samotneho jako odkaz na tabulku virtualnich funkci (spolecnou pro cely typ), pri volani virtualni funkce par asm instrukci navic a tabulka virtualnich funkci spolecna pro cely typ - casto by to clovek musel resit slozitejsima metodama, pokud by se v tom chtel vyznat.
Co je drazsi je dynamicke alokovani objektu, protoze to je prace s heap a volnym prostorem a pak zas jejich dealokovani (a volani konstruktoru a destruktoru pri tom) a prave v mikroprocesorech s malou RAM (kterou to muze fragmentovat) je lepsi to nepouzivat zbytecne (jako v tom prikladu). Na druhou stranu u staticky deklarovanych objektu to neni zas takovy problem.
Drahe to zacne byt az kdyz se to pouziva prehnane ("vsechno je objekt vcetne cisel") a tam, kde to neni potreba. Natoz kdyz se to pouziva za kazdou cenu, "protoze se to tak dela".
No a samozrejme u spatne navrzenych objektu, ale to je problem spatne navrzeneho programu, stejne jako nesmyslne smycky, neefektivni algoritmy a jine.
Stejne jako pro porovnani dvou cisel je blbost pouzit prevedeni na pole, pouziti sofistikovaneho sortovaciho algoritmu a prevedeni zpet, tak je blbost sortovani obrovskeho pole resit serii if-u pro vsechny kombinace.
Takze nasledujici kod je fakt nevhodny pro cela cisla mezi 0 a 255, ale muze byt fakt extremne vhodny, pokud a,b,c,d jsou matice a vektory, nerkuli vicerozmerna zverstva. (A v takovem pripade muze mit i velice dobry smysl pretizit operatory +*- a jim podobne.) Obzvlaste, kdyz se tim dost snizi sance na nejakou chybu a spoustu jich dokaze odchytat uz sam prekladac 

Co je drazsi je dynamicke alokovani objektu, protoze to je prace s heap a volnym prostorem a pak zas jejich dealokovani (a volani konstruktoru a destruktoru pri tom) a prave v mikroprocesorech s malou RAM (kterou to muze fragmentovat) je lepsi to nepouzivat zbytecne (jako v tom prikladu). Na druhou stranu u staticky deklarovanych objektu to neni zas takovy problem.
Drahe to zacne byt az kdyz se to pouziva prehnane ("vsechno je objekt vcetne cisel") a tam, kde to neni potreba. Natoz kdyz se to pouziva za kazdou cenu, "protoze se to tak dela".
No a samozrejme u spatne navrzenych objektu, ale to je problem spatne navrzeneho programu, stejne jako nesmyslne smycky, neefektivni algoritmy a jine.
Stejne jako pro porovnani dvou cisel je blbost pouzit prevedeni na pole, pouziti sofistikovaneho sortovaciho algoritmu a prevedeni zpet, tak je blbost sortovani obrovskeho pole resit serii if-u pro vsechny kombinace.
Takze nasledujici kod
Kód: Vybrat vše
a.odecti(b).vynasob(c).pricti(d);

- moda, ktera se vytrvale drzi prez pul stoleti a nejevi snahu opadnout, uz asi neco do sebe maOsobně si myslím, že i používání objektů v běžném strukturovaném jazyce, je píše taková móda, než opodstatněná záležitost.
