Search code examples
c++syntaxconstants

Is 'const' necessary in function parameters when passing by value?


In the following C++ functions:

void MyFunction(int age, House &purchased_house)
{
    // ...
}

void MyFunction(const int age, House &purchased_house)
{
    // ...
}

In both, age is passed by value. I am wondering if the const keyword is necessary: It seems redundant to me, but also helpful (as an extra indication the variable will not be changing).

Does anyone have any opinion as to which (if any) of the above are better?


Solution

  • This, IMHO, is overusing. When you say 'const int age,...' what you actually say is "you can't change even the local copy inside your function". What you do is actually make the programmer code less readable by forcing him to use another local copy when he wants to change age/pass it by non-const reference.

    Any programmer should be familiar with the difference between pass by reference and pass by value just as any programmer should understand 'const'.