gpt4 book ai didi

c++ - T const & 在函数的返回类型中意味着什么?

转载 作者:行者123 更新时间:2023-11-30 02:49:25 25 4
gpt4 key购买 nike

下面的函数原型(prototype)有什么样的返回类型?

int const& myfunctionname(int i)

我在这里没有使用 const 和 &。如果我要返回对象/数组/基本上是非局部变量,如果我想返回对象的位置,我应该使用指针还是引用?

最佳答案

这意味着您要返回对无法更改的值的引用。

如果您返回对局部变量的引用,那么您将遇到问题,因为它将引用不再存在的内容:

int const &GetValue()
{
int x = 10;
return x; // THIS IS BAD!
}

此外,返回对整数类型(int、long 等)的 const 引用实际上没有意义,因为它们首先占用的空间与引用几乎相同。但是,如果您这样做了,那就没什么大不了的。

如果您要返回非本地数据(即成员数据),那么如果数据始终存在则使用引用,如果数据可能不存在则使用指针,这样 NULL 表示不存在的数据。例如:

const std::string &User()const
{
return m_Username;
}

int Age() const
{
return m_Age; // Pointless to use a reference here
}

const Person *Partner()const
{
return m_Parter; // User may not have a partner, so pointer
}

如果您不希望调用者能够修改返回的对象,请将指针或引用设为const

关于c++ - T const & 在函数的返回类型中意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21202964/

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