gpt4 book ai didi

c++ - 重载下标运算符 []

转载 作者:太空狗 更新时间:2023-10-29 20:31:01 25 4
gpt4 key购买 nike

为什么它的操作需要是一个类的成员函数,返回私有(private)成员的引用就好了?

class X
{
public:

int& operator[] (const size_t);
const int &operator[] (const size_t) const;

private:
static std::vector<int> data;
};

int v[] = {0, 1, 2, 3, 4, 5};
std::vector<int> X::data(v, v+6);

int& X::operator[] (const size_t index)
{
return data[index];
}

const int& X::operator[] (const size_t index) const
{
return data[index];
}

最佳答案

  • 至于为什么需要[]作为成员,你可以read this question (由你真诚)。似乎就是这样,没有真正令人信服的解释。

  • 至于为什么返回引用?因为您想提供一种不仅可以读取数据,还可以(对于非常量对象)修改数据的方法。如果返回不是引用(或某个代理)

    v[i] = 4;

    行不通。

HTH

关于c++ - 重载下标运算符 [],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5194100/

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