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
Language: C++
Expertise: Advanced
Oct 23, 2000

Don't Use const for Passing Parameters by Value

To avoid undesirable changes to an argument passed by reference, you pass it as a const parameter. For example:

 
void f(const string & s); // f can't change s

However, some programmers use const even when they pass parameters by value, for example:

 
void f(const int n); // n is passed by value, why const?

Is it really necessary? No, it's not. Remember that when you pass a parameter by value, the function called can't make changes to original value anyway because it receives a copy of it. Therefore, the use of const for passing parameters by value only blocks the function from changing its local copy. However, whether a function changes its local copy of some variable is an implementation detail; it's not a part of the interface. Therefore, users of this function don't (and shouldn't) need to know that. As a rule, don't declare parameters const if they are passed or returned by value.

Danny Kalev
 
Comment and Contribute

 

 

 

 

 


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

 

 

Sitemap