Penso che la soluzione più sensata sia quella di creare un header e un .cpp.
Nello header metterai qualcosa tipo:
codice:class Figlia1; class Madre { public: Figlia1 operator[] ( int ); }; class Figlia1 : public Madre { }; //altro
Nel .cpp implementerai l'operatore [] e tutti gli altri metodi.