c++ - How to call a non-const operator? -
so i'm having problem trying phone call specific operator. in class, i'm given:
template <class object> const object& myvector<object>::operator[] (int index ) const { if (index < 0 || index >= msize) throw myexception(); homecoming mobjects[index]; }
and i'm given
template <class object> object& myvector<object>::operator[]( int index ){ if (index < 0 || index >= msize) throw myexception(); homecoming mobjects[index]; }
i want phone call sec 1 can modify value, compiler keeps telling me can't because i'm trying modify constant.
here's i'm trying utilize operator function:
template <class object> const object& matrix<object>::get(int r, int c) const{ myobject *row = & myvectorobject[r]; //error //snipped }
and maintain getting error: cannot convert const myobject *
myobject *
the matrix<object>::get()
method const, if access class attributes of matrix in method, of them considered const.
myobject *row = & myvectorobject[r]
calls const object& myvector<object>::operator[] (int index ) const
.
const object& myvector<object>::operator[] (int index ) const
homecoming const object&
.
so myvectorobject[r]
of type const object&
, & myvectorobject[r]
of type const object *
you should write: const myobject *row = & myvectorobject[r];
c++ const
No comments:
Post a Comment