gpt4 book ai didi

c++ - 为什么要为 "copy on write"的 const 成员函数返回一个代理类?

转载 作者:太空宇宙 更新时间:2023-11-04 12:40:28 26 4
gpt4 key购买 nike

在More Effective C++中,给出了如下代码

const String::CharProxy String::operator[] (int index) const
{
return CharProxy(const_cast<String&>(*this), index);
}
String::CharProxy::operator char() const
{
return theString.value->data[charIndex];
}

为什么我们不直接返回一个 char 而不是使用 const_cast 并稍后将 CharProxy 转换为 char?

最佳答案

如果我对你的情况没有错的话,还有 non const 版本既可以读/写 char,也可以像 Real Fresh 所说的那样获取 char 的指针/引用.

然后很自然地为 const 版本提供相同的功能,允许读取 char(当然不是写)并获取 char 的指针/引用(const)。

std::vector std::string 等有这种行为

关于c++ - 为什么要为 "copy on write"的 const 成员函数返回一个代理类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54416649/

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