Tentang kelebihan operator di C++

Saya mempunyai pertanyaan tentang operator, katakanlah saya memiliki kelas kelas saya dan saya telah membebani operatornya secara berlebihan *=, [], dan +

Bisakah saya mengaksesnya di dalam fungsi anggota dengan this->*=, this->[], *this + * this... ?


person user2370139    schedule 13.05.2013    source sumber


Jawaban (4)


Ya, Anda dapat mengaksesnya dengan berbagai cara. Anda dapat, misalnya, melakukan ini:

*this + something

Atau sebagai alternatif:

this->operator+(something)
person Joseph Mansfield    schedule 13.05.2013

this hanyalah sebuah penunjuk. Anda dapat melakukan semua hal berikut dengan penunjuk apa pun.

Ini adalah cara yang lebih disukai karena tidak kehilangan sintaks operasional:

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

Itu hanya mendereferensi pointer.

Anda juga dapat menggunakan nama mereka:

this->operator[](2)
this->operator() (foo, bar)
this->operator/ (3)
this->operator*(that - 3) + 5
person Sebastian Mach    schedule 13.05.2013

Jika Anda tidak menggunakan operator eksternal, seharusnya berfungsi seperti itu : this->operator[](args)

person Jiwan    schedule 13.05.2013

ada sintaks khusus untuk pointer, tampilannya seperti itu:

this->oprator[](0)

this->operator+(*this)

person 0x26res    schedule 13.05.2013