#include "stdafx.h"
#include <iostream>
using namespace std;
#include <string.h>
class Array
{
public:
int Length;
char *Arrp;
Array(char *str)
{
Length=strlen(str);
Arrp=str;
}
char & operator[](int index);
};
char & Array::operator[](int index)
{
if(index>=Length||index<0)
{
cout<<"Index "<<index<<" error."<<endl;
return Arrp[0];
}
return Arrp[index];
}
int _tmain(int argc, _TCHAR* argv[])
{
Array a("Good");
cout<<a.Arrp[6]<<endl;
return 0;
}
根本没有进入[]的重载功能。我将它与许多例子进行比较,但我写的东西从不起作用。
我该如何进一步处理?
答案 0 :(得分:1)
您没有调用重载函数,而是直接读取数组本身。
尝试:
cout<<a[6]<<endl;