c++ - Is it possible to use the modified returned reference in an overload like `int &operator[]'? -


suppose have class implements array of int grows on demand. class implements int &operator[] method overloading [] operator , returning reference value in array.

now use operator in loop this

classinstance[index] += 1; 

i want know whether it's possible use incremented value inside int &operator[] function?

to make clear, want able know new value of referenced integer in order upadte maximum , minimum values.

the way solve problem return pretends int&, while providing overloads methods operator+=, etc.

something this:

class myintreference {  public:   myintreference(int& reference_to_wrap) :     wrapped_reference_{reference_to_wrap}   {}    // method returns void, have return whatever want   void operator+=(const int addend) {     wrapped_reference_ += addend;     dowhateveryouwant();   }   private:   int& wrapped_reference_; }  // then, in other class myintreference yourotherclass::operator[](const int index) {   return myintreference{my_array_[index]}; } 

obviously, rough piece of code, think refined quite nice.


Comments

Popular posts from this blog

php - Zend Framework / Skeleton-Application / Composer install issue -

c# - Better 64-bit byte array hash -

python - PyCharm Type error Message -