Namnrymder

använda Namnrymdsammansättning

Best practice in programming föreslår att ny data eller funktionalitet binds i ett sanely-namngivet, unikt namnområde när det är möjligt. Detta anses vara en fördel jämfört med att dumpa allt i det globala namnområdet, eftersom namnuppslag kan uttryckligen aktiveras eller inaktiveras som ovan, symboler är konsekvent manglade utan repetitivenamingprefix eller makron etc.

tänk till exempel på ett projekt som definierar de flesta av sina klasser i namespace gtk. Det är möjligt att anpassa namespace gtk till namespace std genom att använda en C++-funktion som heternamespace-komposition. Detta är vad som händer ifa använder-deklaration sätts i anamespace-definition: den importerade symbolen(S) får importeras till thecurrently active namespace(s). Till exempel:

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

i det här exemplet importeras std::string tillnamespace gtk. Resultatet är att användningen av std::string inside namespace gtk bara kan använda string, utan det uttryckliga qualification.As en extra bonus, std::string importeras inte till det globala namnområdet. Dessutom kan ett mer detaljerat arrangemang göras för bakåtkompatibilitet och portabilitet, varigenomusing-deklarationerna kan förpackas i makron som är baserade på autoconf-tester till antingen ”” eller dvs using std::string; (beroende på om systemet harlibstdc++ i std:: eller inte). (ideas fromLlewelly och Karl Nelson)

Lämna ett svar

Din e-postadress kommer inte publiceras.

Previous post TV: ns guldålder är över
Next post Periodspårningsappar är inte för kvinnor