Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Home » Tip Bank » C++
Language: C++
Expertise: Advanced
Sep 9, 2002

Solving Global Namespace Clashes


The C++ language provides a single global namespace. This can cause problems with global name clashes. For instance, consider these two C++ header files:
 
 // file1.h

float f ( float, int ) ;

class sample { ... } ;



// file2.h

class sample { ... } ;

With these definitions, it is impossible to use both header files in a single program; the sample classes will clash.

A namespace is a declarative region that attaches an additional identifier to any names declared inside it. The additional identifier thus avoids the possibility that a name will conflict with names declared elsewhere in the program. It is possible to use the same name in separate namespaces without conflict even if the names appear in the same translation unit. As long as they appear in separate namespaces, each name will be unique because of the addition of the namespace identifier. For example:
 
// file1.h

namespace file1

{

float f ( float, int ) ;

class sample { .. } ;

}



// file2.h

namespace file2

{

class sample { ... } ;

}

Now, the class names will not clash because they become file1::sample and file2::sample, respectively.
Palanisamy Balasubramaniam
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date