2013-07-04 3 views
2

시계 창에 첨자 연산자를 평가 :은 다음과 같이 간다 나는 간단한 배열 래퍼 클래스를

class MyArray 
{ 
    int * m_Data; 
    int m_Size; 

public: 
    MyArray(int aSize) : m_Size(aSize), m_Data(new int[aSize]) 
    { 
    } 

    int & operator [](int aIndex) 
    { 
     return m_Data[aIndex]; 
    } 

    const int & operator [](int aIndex) const 
    { 
     return m_Data[aIndex]; 
    } 
}; 

MyArray a(10); 

내가 (등 빠른 시계, 직접 실행 창) 디버거에서 첨자 연산자를 평가하려고 할 때마다 예 : a[0], a[0] no operator "[]" matches these operands 오류가 발생합니다. 클래스 필드를 파고 들어 배열의 내용을 확인할 수 있습니다. 그러나 코드 줄의 일부를 복사하여 조사 식 창에서 평가하는 것이 훨씬 쉽습니다. const 및 non-const [] 연산자를 제거하려고했습니다. 나 또한 using() 연산자를 사용해 보았지만 작동하지 않았지만 다른 오류 메시지가 나타났다. 나는 VS2012 및 VS2013에서 이것을 시도했다. 미리보기 : 똑같은. 이 문제를 해결할 방법이 있습니까?

int & Item(int aIndex) 
{ 
    return m_Data[aIndex]; 
} 

그런 다음 윈도우 나에게 결과를 보여줄 수있는 시계 : 나는 멤버 함수와 첨자 연산자를 교체 할 경우

. 하지만 아래 첨자 연산자를 사용하는 것을 선호합니다.

답변

1

매우 편리하지는 않지만 해결책이있는 해결책을 찾았습니다. 내가 운영자 호출의 확장 된 형태를 사용하는 경우, 그것은 VC++ 2012에서 작동 :이 두 가지 형태가 VC++ 디버거 다른 이유

a.operator[](0) 

그것은 내게 분명하지 않다. 그래서 나는 새로운 질문을 올렸다. here

관련 문제