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

By submitting your information, you agree that devx.com may send you DevX offers via email, phone and text message, as well as email offers about other products and services that DevX believes may be of interest to you. DevX will process your information in accordance with the Quinstreet Privacy Policy.


Tip of the Day
Language: C++
Expertise: All
Oct 2, 1998

WEBINAR:

On-Demand

Application Security Testing: An Integral Part of DevOps


:: Operator Should not be Used to Designate a Global Function

In some frameworks (MFC, for instance), it's customary to add the scope resolution operator :: before a global function's name to mark it explicitly as a function that is not a class member.
 
void String::operator = (const String& other) 
{
 ::strcpy (this->buffer, &other); // strcpy is preceded by :: operator, not a good idea
}
This practice is not recommended anymore. Many of the standard functions that used to be global are now grouped under namespaces. For example, strcpy() now belongs to namespace std, and so are most of the Standard Library's functions. Putting the scope resolution operator before them will stymie the lookup algorithm of the compiler, resulting in compilation errors. Therefore, it's advisable to leave the function's name without the scope resolution operator.
Danny Kalev
 
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