【发布时间】:2012-05-30 14:23:47
【问题描述】:
我认为以下是一种良好的编码实践。当参数通过值传递给函数时,它应该只被读取,而不能在函数体中修改(或重用)。但这真的是一种好习惯吗?
示例(我避免做的):
int foo(int x){
//do lots of cool stuff
x = 69;
//do even cooler stuff
}
从这里我们得到 const 正确性。假设我的实践很好,那么几乎每个函数的每个参数都应该以“const”开头。实际上“a”是乐观的:
class A{
const int gnoo(const int *const, const double) const;
};
【问题讨论】:
-
不返回 const 副本。除了让其他人的生活变得悲惨之外,它没有任何用处。如果它是引用或指针,则可以,但不是副本。