您的位置:首页 > 编程语言 > C语言/C++

C++(30)数组下标的运算符重载

2018-01-19 21:27 453 查看

重载[]和()运算符

运算符 [] 和 () 是二元运算符

[] 和 () 只能用成员函数重载,不能用友元函数重载

重载下标运算符 []

[]运算符用于访问数据对象的元素

重载格式类型 类 :: operator[] ( 类型 )

设 x 是类 X 的一个对象,则表达式
x [ y ]
可被解释为
x . operator [ ] ( y )


#include <iostream>

using namespace std;

class Array
{
public:
Array (int len = 0)
{
this->len = len;
p = new int[len];
}

int &operator[](int index)
{
return p[index];
}
private:
int len;
int *p;
};

int main()
{
Array a(10);
for (int i = 0; i < 10; i++)
{
// operator[] (Array &a, int i) ==> operator[] ( int i)
// a.operator[](i) = i;
a[i] = i;
cout<<a[i]<<" ";
}
cout<<endl;
return 0;
}

执行结果:
0 1 2 3 4 5 6 7 8 9


总结:

操作符重载是C++的强大特性之一

操作符重载的本质是通过函数扩展操作符的语义

operator关键字是操作符重载的关键

friend关键字可以对函数或类开发访问权限

操作符重载遵循函数重载的规则

操作符重载可以直接使用类的成员函数实现

=, [], ()和->操作符只能通过成员函数进行重载

++操作符通过一个int参数进行前置与后置的重载 C++中不要重载&&和||操作符
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: