I have this problem:
// the classes
class cBase {};
class cDerived : public cBase {};
class cBaseArray
{
    // the array of pointers to cBase
    cBase** array;
    // overloaded operator that returns an element of the array
    cBase*& operator[](unsigned index)
    {
        // much more complicated, but simplified for example
        return array[index];
    }
};
class cDerivedArray : public cBaseArray
{
    // overloaded operator that returns a converted element of the array
    cDerived*& operator[](unsigned index)
    {
        // conversion required, but don't know how
        return static_cast<???>(cBaseArray::operator[](index));
    }
};
So how do I convert the reference to pointer to cBase returned by the operator[] of cBaseArray to refernce to pointer to cDerived that can be returned by the operator[] of cDerivedArray?
 
     
    