devxlogo

Don’t Use const for Passing Parameters by Value

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.

devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist