Browse DevX
Sign up for e-mail newsletters from DevX

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



Building the Right Environment to Support AI, Machine Learning and Deep Learning

:: 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.



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