我有个问题:
假设我有一些不能修改的类(比如因为它们来自我正在使用的库):
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()
... 所以有什么想法吗?