首页 > 解决方案 > 返回一个 const 变量 - 它会导致问题吗?

问题描述

我是 C++ 新手,还没有找到答案,因为搜索结果总是关于函数签名而不是这个。

基本上,如果我有一个功能:

std::string MyFunction(const int test) const
{
    const std::string str1 = "Hello";
    const std::string str2 = "World";
    return test > 7 ? str1 : str2;
}

返回值是str1str2,两者都是const。这会给调用者带来问题吗?

标签: c++constants

解决方案


返回值是str1str2,两者都是const。这会给调用者带来问题吗?

不,不会的。返回的对象是其中之一的副本。

const顺便说一句,在大多数用例中,在参数类型中使用 是没有意义的。是否修改函数中参数的值不会影响调用函数。除非您有充分的理由证明使用 . 是合理的const,否则我建议使用不带const.

std::string MyFunction(int test) const { ... }

推荐阅读