Névterek

névtér-összetétel használata

a programozás legjobb gyakorlata azt sugallja, hogy új adatokat vagy funkciókat kell elkülöníteni egy józanul elnevezett, egyedi névtérben, amikor lehetséges. Ezt előnynek tekintik a globális névtér mindent dömpingjével szemben, mivel akkor a névkeresés kifejezetten engedélyezhető vagy letiltható a fentiek szerint, a szimbólumokat következetesen összekeverik repetitivenaming előtagok vagy makrók stb.

vegyünk például egy projektet, amely a legtöbb osztályát namespace gtk – ben határozza meg. Lehetőség van toadapt namespace gtk a namespace std segítségével egy C++-funkció callednamespace összetételét. Ez történik, ha a-deklaráció használata anamespace-definíció: az importált szimbólum(ok) importálódik a jelenleg aktív névtér(ek) be. Például:

namespace gtk{ using std::string; using std::tr1::array; class Window { ... };}

ebben a példában a std::stringlesz importálva anamespace gtk – be. Az eredmény az, hogy astd::string belső névtér GTK csak használni string, anélkül, hogy az explicit qualification.As astd::string hozzáadott bónusz NEM kerül importálásra a globális névtérbe. Ezenkívül bonyolultabb elrendezést lehet készíteni a visszafelé kompatibilitás és a hordozhatóság érdekében, ahol ausing-deklarációk az autoconf-teszteken alapuló makrókba csomagolhatók vagy “” vagy azaz using std::string; (attól függően, hogy a rendszer rendelkezik-e libstdc++ std:: – ben vagy sem). (Karl Nelson és llewelly ötletei)

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.

Previous post a televíziózás aranykora véget ért
Next post időszak-nyomkövető alkalmazások nem a nők