Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
Poky

Založen: 29. 06. 2009 Příspěvky: 184 Bydliště: Písek / Plzeň
|
Zaslal: 6. září 2010, 18:43:30 Předmět: Jak funguje std::cout? |
|
|
Ahoj, mám menší problém. Potřebuji vědět, jak přesně funguje std::cout, respektive jak se vytvaří instance její třídy(tušim ostream). Potřbuju totiž dosáhnout stejného efektu. Můj skutečný problém spočívá v tom, že mám vlastní souborový systém a potřebuju aby se rovnou při načítání vytvořila i jeho jediná instance "console" a zároveň aby byla viditelná všem ostatním hlavičkovým souborům v enginu (skrátka stejný princip jako u std::cout).
Doufám, že jsem to napsal srozumitelně . Děkuji předem za odpověď. |
|
Návrat nahoru |
|
 |
Kaemon
Založen: 28. 07. 2007 Příspěvky: 33
|
Zaslal: 6. září 2010, 19:29:46 Předmět: Re: Jak funguje std::cout? |
|
|
|
|
Návrat nahoru |
|
 |
Quiark

Založen: 29. 07. 2007 Příspěvky: 816 Bydliště: Chlívek 401
|
Zaslal: 6. září 2010, 21:51:38 Předmět: |
|
|
Jo, to je jedna možnost. Jinak cout je imho globální proměnná jako každá jiná.
bla.h:
kód: |
extern MujObjekt glob; |
bla.cpp:
_________________ Mám strach |
|
Návrat nahoru |
|
 |
Poky

Založen: 29. 06. 2009 Příspěvky: 184 Bydliště: Písek / Plzeň
|
Zaslal: 7. září 2010, 08:49:10 Předmět: |
|
|
Díky moc Quiark, to je přesně to co jsem potřeboval. Vyřešeno! |
|
Návrat nahoru |
|
 |
pcmaster

Založen: 28. 07. 2007 Příspěvky: 1827
|
Zaslal: 7. září 2010, 19:26:37 Předmět: |
|
|
Ja v poslednom case pouzivam singletony (presne ako v odkazovanom clanku) a pre skratenie zapisu este aj C makra Yum yum!
kód: |
#define COUT (ONE_MORE_MACRO_YEAH->FuckingRulingOutput)
...
COUT << "xyz" << ENDL |
_________________ Off-topic flame-war addict since the very beginning. Registered since Oct. 2003!
Interproductum fimi omne est. |
|
Návrat nahoru |
|
 |
VODA

Založen: 29. 07. 2007 Příspěvky: 1721 Bydliště: Plzeň
|
|
Návrat nahoru |
|
 |
Al
Založen: 23. 10. 2007 Příspěvky: 196
|
Zaslal: 14. září 2010, 22:06:15 Předmět: |
|
|
Klíčové slovo static udělá stejnou službu jako singleton. A nejhorší jsou lidi, co ty dvě věci pletou mezi sebou. Static tu bylo v C a C++ odjakživa a najednou někdo přišel se singletonem a začal to sem montovat. Uáááááááááááááá...
Ono to v těch knihách o vzorech buď není, nebo jsem přehlédl, že Singleton je vzor k řešení situace, kdy máme již hotovou třídu (typicky v týmu od jiného autora) a chceme ji použít ve stylu jakoby globální proměnné. Ne k řešení situace, kdy píšeme novou třídu a můžeme si ji by design rovnou udělat static. A většinou si píšeme ty třídy sami pro sebe, aspoň já tedy ano, takže bych sem ty singletony moc nepletl. |
|
Návrat nahoru |
|
 |
Ondras
Založen: 12. 09. 2007 Příspěvky: 66
|
Zaslal: 16. září 2010, 11:49:47 Předmět: |
|
|
To, ale neni singleton. Singleton ma jenom JEDNU instanci v celym programu. Kdezto ty mas teoreticky vic instanci, ktere sdili data.
Viz.: monostate vs singleton
Navic tam davat globalni promenne, no ja nevim... U tech static veci opatrne nemas zaruceny poradi vytvareni. Nema cout, cin primo v norme zaruceny vytvoreni pred vsim ostatnim? Ty tohle u svych veci nemas. |
|
Návrat nahoru |
|
 |
Al
Založen: 23. 10. 2007 Příspěvky: 196
|
Zaslal: 19. září 2010, 18:23:21 Předmět: |
|
|
To by mě teda zajímalo, "co" jako údajně není singleton. Ať je jasno, o čem se tu člověk má vlastně hádat.
Pořadí vytváření já naštěstí v praxi zaručené mám, protože používám .NET a vyjadřuji tímto upřímnou soustrast s těmi, co ho v ANSI/ISO C++ zaručené nemají. Je to tam peklo. Brrr... Myslím, že tohle je jeden hodně dobrý argument, proč nepoužívat ty globální proměnné v C++ tam, kde člověk jen potřebuje zajistit jedinečnost instance třídy (na což se myslím původní tazatel hlavně ptal). |
|
Návrat nahoru |
|
 |
Yossarian

Založen: 28. 07. 2007 Příspěvky: 274 Bydliště: Šalingrad
|
Zaslal: 20. září 2010, 10:29:06 Předmět: |
|
|
Al napsal: |
To by mě teda zajímalo, "co" jako údajně není singleton. Ať je jasno, o čem se tu člověk má vlastně hádat.
Pořadí vytváření já naštěstí v praxi zaručené mám, protože používám .NET a vyjadřuji tímto upřímnou soustrast s těmi, co ho v ANSI/ISO C++ zaručené nemají. Je to tam peklo. Brrr... Myslím, že tohle je jeden hodně dobrý argument, proč nepoužívat ty globální proměnné v C++ tam, kde člověk jen potřebuje zajistit jedinečnost instance třídy (na což se myslím původní tazatel hlavně ptal). |
Jj, .NETacky zpusob 'on-demand' je 'genialni a super'. napr: http://blogs.msdn.com/b/oldnewthing/archive/2007/08/15/4392538.aspx |
|
Návrat nahoru |
|
 |
Augi

Založen: 28. 07. 2007 Příspěvky: 782 Bydliště: Čerčany
|
Zaslal: 20. září 2010, 11:51:52 Předmět: |
|
|
Mně třeba tenhle on-demand přístup hodně vyhovuje. Když to jsou navíc generické třídy, tak je to úplně cool  |
|
Návrat nahoru |
|
 |
Al
Založen: 23. 10. 2007 Příspěvky: 196
|
Zaslal: 20. září 2010, 18:47:49 Předmět: |
|
|
Nezapomeňte, že statický konstruktor si v .NETu můžete zavolat kdykoliv dřív, pokud to prostě chcete nebo potřebujete. Nemusíte čekat, až se na poslední chvíli zavolá sám. Čili nějak v tom nevidím žádný problém, používání static v .NETu je pohodička. |
|
Návrat nahoru |
|
 |
|