gpt4 book ai didi

C++ nonconst-const-overloaded 方法选择

转载 作者:行者123 更新时间:2023-11-27 23:30:21 27 4
gpt4 key购买 nike

我的类中有常量重载方法:

class A{
public:
typedef int data[10];

data& operator[](int index);
const data& operator[](int index) const;
}

此类正在为其内部数据实现写时复制。我想因为我允许直接访问数据,所以我必须在每次使用 operator[] 时创建共享数据的拷贝(如果它明显共享),而不是 operator[] const 。然而,即使代码使用 operator[] 读取数据,但对象本身没有声明为 const,它仍然会导致创建拷贝,因为将使用 operator[]。是否有任何语法允许我选择调用哪些运算符?

最佳答案

是:const_cast<A const&>(anAObj)[5] .

关于C++ nonconst-const-overloaded 方法选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5832995/

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