I need help

Язык с++

Имеется класс: человек

У него три подкласса: учёный, охранник, пекарь.


Также имеется класс: строение

И три подкласса : лаборатория,КПП, кухня


Насколько мне известно, можно написать

Person* men;

men = new (и имя любого подкласса);


Тем самым можно создать массив объектов человек, а управлять объектами классов охранник, учёный, пекарь.


Задача.


class building

{

public:

int number_of_person;

person ** workers;

}


class kpp: public building

{

public:

person** workers= new person*[4];


kpp()

{

this.number_of_person=4;

for (int I=0;I<this.number_of_person;I++)

{

switch( rand()%3)

{

case 0:

worker[I]=new baker(0);

break;


И далее с остальными


} //Конец switch

}//Конец for


}//Конец класса



Я хочу перегрузить в классе строение оператор[] чтобы сразу получать доступ к объекту

Т.е чтобы не писать

a.worker[0].locale

,Где а- объект класса крр, а писать

a[0].locale


Именно эта функция выкидывает ошибку при обращении к объекту.