Navnerum

brug af Namespace sammensætning

bedste praksis i programmering foreslår sekvestrering af nye data ellerfunktionalitet i et sanely-navngivet, unikt navneområde, når det er muligt. Dette betragtes som en fordel i forhold til at dumpe alt i det globale navneområde, da navneopslag eksplicit kan aktiveres eller deaktiveres som ovenfor, symboler er konsekvent manglet uden gentagne navne præfikser eller makroer osv.

for eksempel overveje et projekt, der definerer de fleste af sine klasser i namespace gtk. Det er muligt attilpasse namespace gtk til namespace std ved at bruge en C++-funktion kaldetnamespace sammensætning. Dette er hvad der sker ifa ved hjælp af-erklæring sættes i anamespace-definition: det importerede symbol(er) importeres til det aktuelt aktive navneområde(er). For eksempel:

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

i dette eksempel importeres std::string tilnamespace gtk. Resultatet er, at brug afstd::string inside namespace gtk kan bare bruge string, uden den eksplicitte qualification.As en ekstra bonus,std::string bliver ikke importeret til det globale navneområde. Derudover kan der laves et mere detaljeret arrangement for bagudkompatibilitet og portabilitet, hvorvedusing-deklarationerne kan pakkes ind i makroer, der er indstillet baseret på autoconf-test til enten “” eller dvs. using std::string; (afhængigt af om systemet harlibstdc++ i std:: eller ej). (ideer fromlley og Karl Nelson)

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.

Previous post tv ‘ ets gyldne tidsalder er forbi
Next post Periodesporingsapps er ikke til kvinder