2016-05-06 118 views
0
#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;  
}  

它根本没有进入[]的重载函数。我将它与大量的例子进行比较,但我写的东西从来没有功能。为什么不在这里使用[]函数的重载函数?

我该如何进一步处理?

回答

1

你没有调用重载函数,而是直接读取数组本身。
尝试:

cout<<a[6]<<endl; 
+1

此外,使属性 '长度' 和 'ARRP' 私人 –

相关问题