Följande avsnitt erbjuder en lösning. Men lösningen är inte tillämplig på funktioner, allt är lika. Den använder Keyword Läs och prova följande kod: namespace först {int identA = 33; int identAA = 35; } Namespace andra {int identB = 44; int identBB = 46; } Using namespace först; int anInt = identA; int theInt = identAA; using namespace andra; int ourInt = identB; int yourInt = identBB; int main () {int mainInt = identA; återvända 0; } Ovanstående kod är OK. Inga funktioner är inblandade här.
Syntaxen att använda med hjälp av sökord using namespace namespaceIdent; Det är inte ett direktiv preprocessor. Det är ett uttalande som slutar med ett semikolon. När du använder ett uttalande som detta i filen omfattning nivå, som i ovanstående kod, kan du använda en identifierare från namnområdet var som helst under användning av uttalandet utan föregående namnet på namnområdet och utan räckvidd operatören, även i block. I ovanstående kod, efter uttalande, "using namespace först;" du kan använda identifierare från namnområdet först.
Dessutom, efter uttalande, "using namespace andra;" du kan använda identifierare från namnområdet, andra. Du kan fortfarande använda identifierare av namnutrymmet, först efter att använda meddelandet om namn, andra. Denna andra metod för namnutrymme kan leda till konflikter när du har samma identifierare i mer än ett namespace; detta är en nackdel med det andra tillvägagångssättet. Nu, läsa igenom ovanstående kod igen. Global Omfattning Under en fil en identifierare för fil omfattning är en identifierare som inte deklareras i något block.
När filerna är kombineras med bland annat förbehandlings direktivet, är fil omfattning identifierare för de enskilda filerna bättre ses som globala omfattning identifierare. Allt vad som sagts ovan är också tillämpliga på en resulterande filen som består av kombinerade filer genom direktiven innefattar förprocessorn. Vi ska visa detta med två filer.