gpt4 book ai didi

c++ - 类型转换返回类型

转载 作者:行者123 更新时间:2023-11-28 08:28:22 25 4
gpt4 key购买 nike

将变量转换为另一种类型会返回该变量的临时拷贝吗?如果是这样,那么为什么不能将临时变量引用到函数。

void func(int &i) //error converting parameter 1 from int to int&
{
}

int main()
{
double d = 6.8;
func(int(d));
}

最佳答案

是的,转换返回一个右值(临时值),但是一个可变引用需要一个左值。

试试这个:

int main() {
double d = 6.8;
{
int v = d;
func(v);
d = v; // if the change needs to be reflected back to d.
// note that, even if `func` doesn't change `v`,
// `d` will always be truncated to 6.
}
}

如果 func 不打算修改 i,则输入参数应该是一个const 引用,可以 接受一个右值。

void func(const int& i);

(但对于原语 func(int i) 会更有效率。)

关于c++ - 类型转换返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3172483/

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