c++ - 返回一个 const 变量 - 它会导致问题吗?
问题描述
我是 C++ 新手,还没有找到答案,因为搜索结果总是关于函数签名而不是这个。
基本上,如果我有一个功能:
std::string MyFunction(const int test) const
{
const std::string str1 = "Hello";
const std::string str2 = "World";
return test > 7 ? str1 : str2;
}
返回值是str1
或str2
,两者都是const
。这会给调用者带来问题吗?
解决方案
返回值是
str1
或str2
,两者都是const
。这会给调用者带来问题吗?
不,不会的。返回的对象是其中之一的副本。
const
顺便说一句,在大多数用例中,在参数类型中使用 是没有意义的。是否修改函数中参数的值不会影响调用函数。除非您有充分的理由证明使用 . 是合理的const
,否则我建议使用不带const
.
std::string MyFunction(int test) const { ... }