LINUXSOFT.cz
Nazwa użytkownika: Hasło:     
    CZ UK PL

> Komentarze :: článek C/C++ (37) - Prostory jmen podruhé

namespace vs. C 21.6.2006 12:05
camlost

"Troufl bych si tvrdit, že se jedná o jednu z nejméně doceněných předností C++ oproti C."

pripada mi, ze rozdil mezi mysql::query() a mysql_query() je ciste esteticky. prinasi namespaces jeste neco jineho krome jakes takes prevence kolize nazvu?

Re: namespace vs. C 21.6.2006 15:20
Jan Němec

Mezi mysql::query() a mysql_query() je v principu stejný rozdíl jako mezi /etc/passwd a _etc_passwd nebo mezi java.util.Date a java_util_Date. O užitečnosti adresářů (u normálních disků) a javovských package (u středně velkých projektů) snad nikdo nepochybuje. Oproti názvu se zakomponovanou cestou zlepšují přehlednost a zjednodušují správu systému s větším počtem souborů/javovských tříd/C++ identifikátorů, rovněž umožňují neúplnou kvalifikaci. U disků s 5 soubory/javovských programů se 3 třídami/C++ hello world příkladů adresáře/package/namespace smysl nemají.

Re: namespace vs. C 21.6.2006 16:53
camlost

tak z Vasi odpovedi vidim, ze budete namespaces branit do roztrhani tela. ja vyhody nezpochybnuji, jen je nevidim. sice jste mi to krasne "natrel" s hello world priklady, ale z konkretnich prinosu jste uvedl jeden - umoznuji neuplnou kvalifikaci.

cim se mi zjednodusi sprava projektu? kolize jmena nejakeho namespace hrozi uplne stejne, jako to, ze nekdo pojmenuje vsechny sve public identifikatory s prefixem mysql (kdyz uz jsme mysql pouzili jako priklad).

takze zatim vidim, ze v ramci namespace mysql nemusim psat mysql::query(), ale staci query(), coz je oproti mysql_query() uspora.

urcite v tom bude jeste neco. :-)

Re: namespace vs. C 21.6.2006 17:34
Ondřej Čečák

Vsak jste to napsal sam, "jakas takas prevence kolize nazvu" je myslim dostatecnou vyhodou.

Re: namespace vs. C 21.6.2006 21:33
Aleš Hakl

To je prave to co to moc neposkytuje, v cistem C se muzu kolizim jmen branit vpodstate stejnym zpusobem. Ale je to takovy syntakticky cukr, jehoz nejvetsi vyuziti je prave v tehle prefixech.

Re: namespace vs. C 21.6.2006 23:12
camlost

ze bych nebyl jediny kverulant? ;-)

mne se totiz zda, ze to je takova vlastnost kvuli image. aby c++ vypadalo, ze je in.

nebo jinak - predstavte si, ze pracujete na rozsahlem projektu v tymu napr. 10 lidi. kazdy z nich pouzije jiny (svuj) namespace? asi tezko, je to jeden projekt, tak tech namespace bude malo, nejspis jen jeden.

krome toho, mnozstvi kodu pouzitelneho v jinych projektech je obvykle velmi male (v porovnani s celkovym mnozstvim vyprodukovaneho kodu). coz sice neni idealni stav, ale je to podle mych zkusenosti realita.

Re: namespace vs. C 22.6.2006 00:15
Aleš Hakl

No nicmene, pravdou je, ze cosi podobneho muzete rict o temer celem C++.

Re: namespace vs. C 22.6.2006 09:12
camlost

to zase ne, oop obecne ma podle me zajimavy vliv na vyvoj aplikace. dedicnost sama o sobe mi prijde velmi uzitecna a i jen kvuli ni bych uprednostnil c++ pred c.

spousta kritiku c++ vytyka existenci pointeru a treba to, ze c++ nevynucuje oop pristup.
ale mne se na c++ libi prave to, ze mi dava svobodu - chci psat jako prase, muzu. chci psat ciste, taky muzu.

Re: namespace vs. C 22.6.2006 12:31
Aleš Hakl

Ano. Ale "OOP" na styl C++ muzete mit stejne dobre v C a to bez nejake velke namahy. Bude to mit jednu krasnou vyhodu - neprekvapi vas na kazdem rohu nejake zcela nelogicke chovani, ktere sam nechcete.

Re: namespace vs. C 22.6.2006 13:34
Jan Němec

Dřív, když jsem C++ (narozdíl od čistého C) moc neuměl, jsem ho používal na objektově orientované problémy (gui, obecné datové struktury, ...) jako C + třídy s možností dědičnosti a virtuálních metod. Ničím mě takto omezené C++ nepřekvapovalo a přišlo mi to snažší a lepší než C. Uznávám, že "správně" napsaný kód ve stylu C++ překvapit programátora může docela snadno.

Re: namespace vs. C 22.6.2006 08:16
Jan Němec

Podle mě jste si v podstatě odpověděl sám. Namespace není žádný zázračný nástroj (s tím s Vámi souhlasím), jen trochu usnadňuje práci u velkých projektů a především knihoven. Příjde mi lepší věšet spoustu rozumně krátkých identifikátorů na strom než na jednu hromadu a ten strom vytvářet názvem identifikátoru. U javovských package a filesystemu se tohle všeobecně uznává, u C++ namespace ne, asi z důvodů historického vývoje a kvůli (pochopitelné a často oprávněné) snaze o kompatibilitu s C. Jiný rozdíl v tom nevidím.


KOMENTARZE
namespace vs. C 21.6.2006 12:05 camlost
  L Re: namespace vs. C 21.6.2006 15:20 Jan Němec
    L Re: namespace vs. C 21.6.2006 16:53 camlost
      |- Re: namespace vs. C 21.6.2006 17:34 Ondřej Čečák
      | L Re: namespace vs. C 21.6.2006 21:33 Aleš Hakl
      |   L Re: namespace vs. C 21.6.2006 23:12 camlost
      |     L Re: namespace vs. C 22.6.2006 00:15 Aleš Hakl
      |       L Re: namespace vs. C 22.6.2006 09:12 camlost
      |         L Re: namespace vs. C 22.6.2006 12:31 Aleš Hakl
      |           L Re: namespace vs. C 22.6.2006 13:34 Jan Němec
      L Re: namespace vs. C 22.6.2006 08:16 Jan Němec
Tylko zarejestrowani użytkownicy mogą dopisywać komentarze.
> Szukanie oprogramowania
1. Pacman linux
Download: 4789x
2. FreeBSD
Download: 8979x
3. PCLinuxOS-2010
Download: 8483x
4. alcolix
Download: 10792x
5. Onebase Linux
Download: 9565x
6. Novell Linux Desktop
Download: 0x
7. KateOS
Download: 6134x

1. xinetd
Download: 2324x
2. RDGS
Download: 937x
3. spkg
Download: 4537x
4. LinPacker
Download: 9787x
5. VFU File Manager
Download: 3109x
6. LeftHand Mała Księgowość
Download: 6994x
7. MISU pyFotoResize
Download: 2695x
8. Lefthand CRM
Download: 3479x
9. MetadataExtractor
Download: 0x
10. RCP100
Download: 2991x
11. Predaj softveru
Download: 0x
12. MSH Free Autoresponder
Download: 0x
©Pavel Kysilka - 2003-2024 | mailatlinuxsoft.cz | Design: www.megadesign.cz