aya*_*ane 2 c++ syntax operator-overloading this
在C++中,我们可以定义和重载运算符以使代码更美观.但是,当需要从定义它的类中调用运算符时,语法不那么优雅.
例如,考虑典型的使用operator[]上string:
std::string word("Hello!");
char first = word[0];
Run Code Online (Sandbox Code Playgroud)
简单.但是,如果这样的运算符需要从一些本身定义它的类中调用呢?语法不是很漂亮:
(*this)[i];//option 1
operator[](i);//option 2
this->operator[](i);//option 3
Run Code Online (Sandbox Code Playgroud)
在性能和/或行为方面,三者之间有什么区别,特别是在处理继承或多态时?哪个是正确的,明确的语法?
在可读性和性能方面,三者有什么区别?
无论您使用哪种形式,性能都不应有任何区别.
至于可读性,这是一个意见问题.我更愿意使用
(*this)[i];
Run Code Online (Sandbox Code Playgroud)
但如果有人使用其他表格,我不会抱怨.
调用运算符的"正确"方法是什么?
一切都是正确的 - 语法和语义.
| 归档时间: |
|
| 查看次数: |
76 次 |
| 最近记录: |