gpt4 book ai didi

C++ : automatic const?

转载 作者:太空狗 更新时间:2023-10-29 23:29:13 29 4
gpt4 key购买 nike

当我编译这段代码时:

class DecoratedString
{
private:
std::string m_String;
public:
// ... constructs, destructors, etc
std::string& ToString() const
{
return m_String;
}
}

我从 g++ 得到以下错误:从类型为“const std::string”的表达式中对类型为“std::string&”的引用的初始化无效

为什么 m_String 被视为常量?编译器不应该在这里简单地创建一个引用吗?

编辑:

此外,我应该怎么做才能让这个函数转换为在大多数情况下都适用的字符串?我将函数设为 const,因为它不会修改内部字符串...也许我只需要让它返回一个拷贝...

编辑:好的...让它返回一个拷贝。

最佳答案

m_String 被视为 const 因为它被访问为

this->m_String

this 是 const,因为成员函数 ToString() 是 const 限定的。

关于C++ : automatic const?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3220159/

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