Aufruf des Basisklassenkonstruktors aus dem abgeleiteten Klassenkonstruktor
Ich habe eine Frage:
Angenommen, ich habe ursprünglich diese Klassen, die ich nicht ändern kann (sagen wir, weil sie aus einer Bibliothek stammen, die ich verwende):
<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>
Aber dann brauchte ich eine Klasse, in der ich nur ein paar Felder hinzufügte.
<code>class PetStore : public Farm { public : PetStore() { idF=0; }; private: int idF; string nameF; } </code>
Aber ich kann meine abgeleitete Klasse nicht initialisieren. Ich meine, ich habe diese Vererbung durchgeführt, damit ich meinem PetStore Tiere hinzufügen kann. Aber jetzt, da sizeF privat ist, wie kann ich das tun? Ich denke, vielleicht kann ich im PetStore-Standardkonstruktor Farm () aufrufen ... also eine Idee?