gpt4 book ai didi

c++ - const在返回类型中使用时如何影响函数

转载 作者:行者123 更新时间:2023-12-01 14:52:49 24 4
gpt4 key购买 nike

const如何影响function1,并使其与function2不同?

const int function1(const int &a) 
{
return a+1;
}

int function2(const int &a)
{
return a+1;
}

我希望返回的变量是 const int而不是 int,但是将脚本放在一起似乎不是这种情况,因为我可以修改从 function1function2返回的两个变量,而且它们似乎没有明显的区别。例如,以下代码可以正常工作:
int main () {
int a = 1;
auto b = function1(a);
auto c = function2(a);
++b;
++c;
}

最佳答案

根据cppreference:

A non-class non-array prvalue cannot be cv-qualified. (Note: a function call or cast expression may result in a prvalue of non-class cv-qualified type, but the cv-qualifier is immediately stripped out.)



从函数返回的结果最终是临时的,在这种情况下特别是prvalue。由于 int是原始类型,因此不能将 const作为prvalue并因此失去其常量性。

如果我们有对 int的引用或指针,则不会有prvalue,因此 const将被保留。

关于c++ - const在返回类型中使用时如何影响函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61538000/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com