我刚开始使用C ++,我很想知道。两个操作员功能有什么区别?我知道第一个是阵列,但第二个中的%是什么意思?
T operator[] (int k) const {
return 0;
}
T operator% () (int k) const {
return 0;
}
答案 0 :(得分:1)
运算符是一个可以用特殊语法表示的函数。如下所示,如果在类MyClass上定义:
T MyClass::operator% (int k);
可以按如下方式调用:
MyClass a;
int k = 1;
T answer = a % k;
另一位经营者:
T MyClass::operator[] (int k);
可以通过以下方式调用:
T answer = a[k];
按照惯例,%运算符被称为模运算符,而[]运算符被称为下标运算符,但是因为它们只是函数,您可以重新定义它们以使它们按照您喜欢的方式执行。
答案 1 :(得分:0)
它们都只是表示运算符,实际上'[]'并不意味着数组,它意味着您可能想要它(尽管通常用于对象或数组初始化的索引)。
检查operators overloading以获取有关此主题的更多信息。但是,制作简历,几乎任何常见的运算符都可以重新定义为特定对象或数据的自定义行为。