У меня есть простой класс массив обертки, который выглядит следующим образом:Оценивая оператор подстрочного в окне просмотра
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
ошибка. Я знаю, что могу перебирать поля классов, чтобы добраться до содержимого массива. Но гораздо проще просто скопировать часть строки кода и оценить ее в окне часов. Я попытался удалить константные и не константные [] операторы. Я также попытался использовать() оператор, он тоже не работал, но он дал другое сообщение об ошибке. Я пробовал это в VS2012 и VS2013 Preview: то же самое. Есть ли способ исправить это?
Если я заменить оператор подстрочного с функцией члена:
int & Item(int aIndex)
{
return m_Data[aIndex];
}
Тогда смотреть окно может показать мне результат. Но я бы предпочел использовать индексный оператор.