Anonymní profil Jeník Veliký – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Jeník Veliký – Programujte.comAnonymní profil Jeník Veliký – Programujte.com

 

Příspěvky odeslané z IP adresy 217.30.64.–

Jeník Veliký
C / C++ › Použití různých verzí téže m…
16. 7. 2021   #388172

Ahoj.

Řeším následující problém. Programuji optimalizační program v C++, který v závislosti na počátečním nastavení uživatele pro výpočet cílové funkce využívá různé předpisy (normy). Dejme tomu že máme pro výpočet cílové funkce způsob A, který vychází z nějaké normy, a způsob B, který vychází z jiné normy. To jaká norma bude použita nastaví uživatel před spuštěním programu. Zbytek programu je totožný. Během optimalizace se iterativně stále dokola volá ona cílová funkce. Samozřejmě existuje jednoduché řešení: při každém volání cílové funkce se pomocí IF podmínky rozhodnout podle jaké normy má počítat. Ale díky tomu, že by se program musel rozhodovat při každé iteraci mi to přijde trestuhodně neefektivní. Druhá možnost je vytvořit 2 nezávislé kódy a spustit jen ten s požadovanou normou. To je zase trestuhodné z hlediska duplicitního kódu.

Představoval jsem si, že vytvořím 2 různé třídy a při konstrukci objektu použiji zvolenou třídu pomocí IF podmínky. Tím by se program rozhodoval pouze jednou při vytváření objektu, ale při samotném iterování už by byl objekt jasně definovaný. Toto bohužel nefunguje, protože nelze objekty vytvářet v IF podmínkách. Jiný způsob, který by se mi líbil je nastavení správné metody pomocí parametru v konstruktoru. To bohužel asi také nejde.

Jsem začátečník a odpověď jsem nikde nenašel. Tak Vás třeba někoho něco napadne. Díky

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý