次のような単純な配列ラッパー クラスがあります。
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 および非 const [] 演算子を削除してみました。() 演算子も使用してみましたが、どちらも機能しませんでしたが、別のエラー メッセージが表示されました。私はVS2012とVS2013プレビューでこれを試しました:同じこと。これを修正する方法はありますか?
添え字演算子をメンバー関数に置き換えると、次のようになります。
int & Item(int aIndex)
{
return m_Data[aIndex];
}
その後、ウォッチウィンドウに結果が表示されます。しかし、添え字演算子を使用したいと思います。