I want to override array index operator in my class. Here's what i am trying to do,but not succeeding.
class Complex{
Complex const& operator[](unsigned int) const; // Read-only access
Complex& operator[](unsigned int); // Read/Write access:
};
const Complex& Complex::operator [](unsigned int unsignedInt) const {
const Complex* temp = this+i;
return *temp;
}
Complex& Complex::operator [](unsigned int unsignedInt) {
Complex* temp = this+i;
return *temp;
}
EDIT : I want to do something like :
Complex **c = new Complex[5]; //Create 2D array
c[2] = new Complex(); //Initialize
cout<<*c[2]; //print by overloading <<
Also, in Complex& Complex::operator[], you cannot return a pointer as a reference. Return the actual object instead.const Complex* temp = this+i;In short, non-multisyllabic words, don't do this.