Naamruimten

compositie van Namespace gebruiken

Best practice in programming suggereert het sequesteren van nieuwe gegevens of functionaliteit in een sanely-namespace, unieke namespace indien mogelijk. Dit wordt beschouwd als een voordeel ten opzichte van het dumpen van alles inde globale namespace, als Dan naam opzoeken kan expliciet worden ingeschakeld ordisabled zoals hierboven, symbolen worden consequent verminkt zonder herhalingen naam voorvoegsels of macro ‘ s, enz.

overweeg bijvoorbeeld een project dat de meeste klassen in namespace gtkdefinieert. Het is mogelijk om namespace gtk aan namespace std aan te passen met behulp van een c++-functie genaamd namespace composition. Dit is wat er gebeurt als een using-declaration in een amespace-definitie wordt gezet: het geïmporteerde symbool(s) wordt geïmporteerd in de huidige actieve namespace(s). Bijvoorbeeld::

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

in dit voorbeeld wordt std::string geïmporteerd innamespace gtk. Het resultaat is dat het gebruik vanstd::string in naamruimte gtk gewoon string kan gebruiken, zonder de expliciete qualification.As een toegevoegde bonus,std::string wordt niet geïmporteerd in de Globale naamruimte. Daarnaast kan een uitgebreidere regeling worden getroffen voor backwards compatibility en portability, waarbij deusing-declaraties kunnen worden verpakt in Macro ‘ s die zijn ingesteld op basis van autoconf-tests op “” of dus using std::string; (afhankelijk van of het systeem haslibstdc++ in std:: of niet). (ideeën van lewelly en Karl Nelson)

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.

Previous post het gouden tijdperk van TV is voorbij
Next post periode-tracking apps zijn niet voor vrouwen