gpt4 book ai didi

c++ - 重载方括号运算符以接受值

转载 作者:可可西里 更新时间:2023-11-01 18:25:58 29 4
gpt4 key购买 nike

我正在编写一个集合类。我想重载方括号运算符 ([]) 以提供对集合中元素的访问。

int operator[](int i)
{
// Do stuff here
}

我的问题是我不知道如何写这个以便我可以使用这个运算符来接受一个值:

myClassInstance[0] = value;

我看不到用附加参数(分配给元素的值)来声明方括号运算符的方法。

我知道我可以简单地返回 int& 并且调用者可以为其分配一个值,但在内部每个元素都以不同于公开的格式存储。

这可能吗?

最佳答案

编写一个 int_proxy 类,它可以隐式转换为 int 并且可以从 int 分配。您至少需要两个成员函数:

operator int();
int_proxy& operator=(int);

在此代理类中,存储您需要的任何信息,以便能够在容器中检索和设置值。在转换运算符中进行检索,在赋值运算符中进行赋值。

关于c++ - 重载方括号运算符以接受值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4573091/

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