我试着理解什么不同,如果我添加const或在返回函数时忽略它。让我通过一个例子来解释我的问题。返回const或non-const在主要类型中有什么区别C++
const int foo()
{
return 3;
}
int main()
{
int check;
check=foo();
cout<<"before:"<<check<<endl;
check=1;
cout<<"after:"<<check<<endl;
return 0;
}
到现在为止,我一直认为,因为我写的常量富()我不能够改变的检查varaible,但是我编译它,并没有错误。
我想知道我通过在我的foo()函数之前编写const获得或放宽了什么。
在此先感谢
它曾经被建议这样做,以避免意外地分配给返回临时:'FOO()= 10; //无法编译。现在建议不要这样做,因为它禁止移动语义(即它意味着你必须将整个返回的临时文件复制到某个局部变量中,而不是窃取它。不是说它在原始情况下有所不同,但作为一般规则这很好)。在你的情况下,'check'是非''constst',并且被赋予与'foo'返回的'const'临时相同的*值*。 – BoBTFish
可能duplicate的http://stackoverflow.com/questions/10177904/what-this-const-before-method-name-mean – Saqlain
对于“可能”的相当严格的定义 - 这是一个确切的愚蠢。 –