(*此)[I]?

mpe*_*pen 1 c++ syntax

我在班上重载了[]运算符.有没有更好的方法从我的课堂内调用此功能(*this)[i]

Fre*_*son 8

好吧,你可以使用"operator [](i)".


bay*_*yda 8

在(size_t i)添加函数并使用此函数

编辑
如果你主动使用stl避免语义不一致:in std::vector operator[]不检查索引是否有效,但是在(..)检查并且可能抛出std::out_of_range异常.我认为在项目中有更多类似的行为会从你的班级中得到预期.
也许这个名字不是这个功能最好的名字.


小智 6

不好,但明确:

this->operator[](i)
Run Code Online (Sandbox Code Playgroud)

如果您发现需要执行此操作,请创建一个At()函数,该函数与operator []完全相同.然后你可以说:

this->At(i)
Run Code Online (Sandbox Code Playgroud)

  • 您不需要在方法调用前放置"this->". (2认同)

Mic*_*urr 6

这可能是一个合理的妥协:

T& me = *this;

// ...

me[i];
Run Code Online (Sandbox Code Playgroud)