Tud*_*dor 0 c++ operator-overloading
我有一个类,我覆盖了 [] 运算符,如果我在方法中实例化了该类,它就可以正常工作。但是如果想将它作为指针传递,我需要这样做来调用操作符:
function(MyData * myData){
int myInt = myData->operator[](i);
}
Run Code Online (Sandbox Code Playgroud)
这看起来很丑陋,我不妨不使用运算符并定义适当的函数。
我在问是否有语法糖,我是菜鸟,所以我不确定,但我可能会创建一个复制构造函数或其他东西,然后将内容复制到堆栈中并正确使用运算符,但这很慢,我宁愿直接访问内存。
您可以使用
int myInt = (*myData)[i];
Run Code Online (Sandbox Code Playgroud)
这在语法上等同于
int myInt = myData->operator[](i);
Run Code Online (Sandbox Code Playgroud)
如果你通过引用传递对象,它会变得更容易。
void function(MyData& myData){
int myInt = myData[i];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
79 次 |
| 最近记录: |