我有一个关于运算符的问题,假设我有一个类 myclass,并且我已经重载了它的运算符 *=、[] 和 +
我可以使用 this->*=, this->[], *this + * this... 在成员函数中访问它们吗?
我有一个关于运算符的问题,假设我有一个类 myclass,并且我已经重载了它的运算符 *=、[] 和 +
我可以使用 this->*=, this->[], *this + * this... 在成员函数中访问它们吗?
是的,您可以通过多种方式访问它们。例如,您可以这样做:
*this + something
或者:
this->operator+(something)
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
指针有一个特殊的合成器,它看起来像这样:
this->oprator[](0)
this->operator+(*this)
如果您不使用外部运算符,它应该像这样工作:this->operator[](args)