2016-05-06 117 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' 私人 –

相關問題