0

我有一个关于运算符的问题,假设我有一个类 myclass,并且我已经重载了它的运算符 *=、[] 和 +

我可以使用 this->*=, this->[], *this + * this... 在成员函数中访问它们吗?

4

4 回答 4

3

是的,您可以通过多种方式访问​​它们。例如,您可以这样做:

*this + something

或者:

this->operator+(something)
于 2013-05-13T11:13:31.500 回答
1

this只是一个指针。您可以使用任何指针执行以下所有操作。

这是首选方式,因为它不会丢失操作语法:

(*this)[2]
(*this)(foo, bar)
*this / 3
*this * (that - 3) + 5

它只是取消引用指针。

你也可以使用他们的名字:

this->operator[](2)
this->operator() (foo, bar)
this->operator/ (3)
this->operator*(that - 3) + 5
于 2013-05-13T11:24:11.210 回答
0

指针有一个特殊的合成器,它看起来像这样:

this->oprator[](0)

this->operator+(*this)

于 2013-05-13T11:13:42.237 回答
0

如果您不使用外部运算符,它应该像这样工作:this->operator[](args)

于 2013-05-13T11:14:15.027 回答