Wywołanie konstruktora klasy bazowej z konstruktora klasy pochodnej

Mam pytanie:

Powiedz, że mam pierwotnie te klasy, których nie mogę zmienić (powiedzmy, ponieważ pochodzą z biblioteki, której używam):

<code>class Animal_
{
public:
    Animal_();
    int getIdA()
    {
        return idA;
    };
    string getNameA()
    {
        return nameA;
    }
private:
    string nameA;
    int idA;
}

class Farm
{
public :
    Farm()
    {
        sizeF=0;
    }
    Animal_* getAnimal_(int i)
    {
        return animals_[i];
    }
    void addAnimal_(Animal_* newAnimal)
    {
        animals_[sizeF]=newAnimal;
        sizeF++;
    }

private:
    int sizeF;
    Animal_* animals_[max];
}
</code>

Ale wtedy potrzebowałem klasy, w której po prostu dodam kilka pól, więc zrobiłem to:

<code>class PetStore : public Farm
{
public :
    PetStore()
    {
     idF=0;
    };
private:
    int idF;
    string nameF;
}
</code>

Ale nie mogę zainicjować mojej klasy pochodnej, mam na myśli, że zrobiłem to dziedziczenie, więc mogę dodawać zwierzęta do mojego PetStore, ale teraz, ponieważ sizeF jest prywatny, jak mogę to zrobić? Myślę, że w domyślnym konstruktorze PetStore mogę zadzwonić do Farm () ... więc jakikolwiek pomysł?

questionAnswers(5)

yourAnswerToTheQuestion