【发布时间】:2012-03-02 01:40:32
【问题描述】:
例如,
void Func(int para);
如果我知道我不想在 Func(...) 中更改 para 的值,我是否应该改为将 para 声明为“const int”以保证这一点?即
void Func(const int para);
顺便说一句,我认为
void Func(const int ¶);
有时不是一个合适的选择,因为 const int& 通常由底层指针实现,因此它本质上等同于
void Func(const int *p_para);
“C++ 编码标准:101 条规则”一书 p31 说“void Func(const int para);”不好,因为它会“混淆”头文件的读者。不过我不确定……
经过深思熟虑,我认为一个好的解决方案是将其声明为“void Func(int para);”并在实现时使用“void Func(const int para) {...}”。我发现“void Func(const int para);”中的“const”一词将被编译器静默删除...
【问题讨论】:
-
更准确地说:阅读this answer。
标签: c++