所以我在嘗試調用特定的操作員時遇到了問題。在一些班級,我給出:如何調用非常量運算符?
template <class Object>
const Object& MyVector<Object>::operator[] (int index) const {
if (index < 0 || index >= mSize)
throw MyException();
return mObjects[index];
}
,我也給
template <class Object>
Object& MyVector<Object>::operator[](int index){
if (index < 0 || index >= mSize)
throw MyException();
return mObjects[index];
}
我要撥打的第二個這樣我就可以修改這個值,但是編譯器不斷告訴我,我不能這樣做,因爲我試圖修改一個常量。
這裏就是我試圖使用操作功能:
template <class Object>
const Object& Matrix<Object>::get(int r, int c) const{
MyObject *row = & MyVectorObject[r]; //error
//snipped
}
而且我不斷收到錯誤:無法從const MyObject *
轉換爲MyObject *
如何'MyVectorObject'聲明? – 2014-10-09 10:24:42
你的'MyVectorObject'是否爲常量? – P0W 2014-10-09 10:24:59
您沒有獲得修改這些對象的權限,所以不要這樣做。 – 2014-10-09 10:26:51