本文内容来自于对狄泰学院 唐佐林老师 C++深度解析 课程的学习总结
重载数组访问操作符
数组访问操作符([ ])
只能通过类的 成员函数重载
重载函数 能且仅能 使用一个参数
可以定义不同参数的 多个重载函数
数组访问符 是 C/C++ 中的 内置操作符
数组访问符的原生意义是 数组访问 和 指针运算
编程实验
编写一个类,实现数组访问操作符成员函数
#include <iostream>
using namespace std;
class Test
{
private:
int a[5];
public:
int& operator [] (int i)
{
return a[i];
}
int& operator [] (const char *str)
{
if(str == "1st")
return a[0];
if(str == "2nd")
return a[1];
if(str == "3rd")
return a[2];
if(str == "4th")
return a[3];
if(str == "5th")
return a[4];
}
};
int main()
{
Test t;
for(int i=0; i<5; i++)
{
t[i] = i;
}
for(int i=0; i<5; i++)
cout << t[i] << endl;
cout << "----------------------------------------------" << endl;
cout << t["1st"] << endl;
cout << t["2nd"] << endl;
cout << t["3rd"] << endl;
cout << t["4th"] << endl;
cout << t["5th"] << endl;
cout << "----------------------------------------------" << endl;
return 0;
}
运行结果
实验结果:成功实现了两个数组访问操作符重载,一个是通过下标访问数组,一个通过字符串访问数组。
小结
string 类 最大程序的兼容 了 C 字符串的用法
数组访问符的重载能够 使得对象模拟数组的行为
只能通过类的 成员函数重载数组访问符
重载函数 能且仅能 使用一个参数