const参数

use*_*631 3 c++ const

在C++中,以下内容是否有意义?

main()
{
 int a=10;
 fun(a);
}

void fun(const int a)
{
...
}
Run Code Online (Sandbox Code Playgroud)

我可以看到类似于这个编译的程序但是有链接器问题.我只是想确认在C++中为const var分配非const var是否合适.

Shl*_*blu 5

是的,没关系.

a无法重新分配fun(),就像它会被声明一样:

void fun(int param)
{
    const int a(param);

    ...

    a = 5; // this is illegal and won't compile.
}
Run Code Online (Sandbox Code Playgroud)

由于它是通过复制传递,有没有什么影响main()a反正.即使fun()a被宣布为非常量和修改.