0

stlのベクトルクラスから算術ベクトルというクラスを継承したいです。私の問題は、角括弧のオーバーロードにあります。コードは次のとおりです。

    template<class type>
type& ArithmeticVector<type>::operator[](int index) const{

    if(this->size()<=index || index < 0){

        throw string("Size Error!");

    }else{

        return vector<type>::operator[](index);

    }

}

エラーが発生します:

int型への参照を型の値にバインドすると、const int修飾子が削除されます。

行で:

        return vector<type>::operator[](index);

どうすれば修正できますか?

4

1 に答える 1

3

を削除するconstか、追加する必要がありconstます。

template <class type>
const type& ArithmeticVector<type>::operator[](int index) const

template <class type>
type& ArithmeticVector<type>::operator[](int index)
于 2013-05-19T17:57:24.887 に答える