質問があります:
私が変更できないこれらのクラスをもともと持っているとしましょう(私が使用しているライブラリから取得したためとしましょう):
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];
}
しかし、いくつかのフィールドを追加するだけのクラスが必要だったので、次のようにしました。
class PetStore : public Farm
{
public :
PetStore()
{
idF=0;
};
private:
int idF;
string nameF;
}
ただし、派生クラスを初期化できません。animals
つまり、この継承を行ったので追加できますが、プライベートなのでどうすればそれを行うことができますかPetStore
? sizeF
私はおそらくPetStore
デフォルトのコンストラクターで呼び出すことができると考えていFarm()
ます...だから何か考えはありますか?