Děláte někdo v C++ ? Dotaz Singleton

Netuším sice co je singleton, ale wiki tvrdí, že je to třída, jíž je v programu pouze jediná instance a to po celou dobu běhu programu. V takovém případě není třída nutná a zvládne to obyčejný programový modul v C (a s tím už tu dokáže poradit každý druhý, globální proměnné patřící pouze danému modulu je nutné označit “static”). Jen už se pak volají funkce klasicky jejich jménem, nikoli přes instance.Metoda(). C++ by bylo potřeba teprve v případě potřeby přetěžování funkcí anebo vytváření a rušení instancí tříd. Jde-li pouze o jakýsi “zapouzdřený” přístup k funkcím, stačí na to z C++ jmenné prostory. Volání by pak vypadalo následovně: JmennyProstor::JmenoFunkce().

Proč se snažím vyhnout použití tříd? Mám velmi nepříjemný pocit, že jakmile bude v programu použita instanciace třídy, překladač do kódu nasype dynamickou alokaci a program bude v mžiku o nemálo kB větší. Další věcí je to, že všechny veřejné prvky z .c(pp) souboru musí být v .h(pp), tedy i deklarace třídy a jejích veřejných komponent) a to zatím neumím, neb mě k tomu zatím nic nedotlačilo :smiley:.

Pokud sem vložíš třídu z javy (od níž nebudou vytvářeny více než 1 instance, stačí bez výkonného kódu, jen deklarace funkcí a proměnných), určitě ji dokážem přepsat do C, v nejhorčím případě C++ se jmennými prostory.