我正在尝试从其基类中创建派生对象的向量。
class Animal
{
// Do Stuff
}
class Dog : public Animal
{
// Do Stuff
}
class AnimalKingdom
{
vector<Animal> animals;
vector<Dog> getDogs();
}
vector<Dog> AnimalKingdom::getDogs();
{
vector<Dog*> dogs;
for(i = 0; i < animals.size(); i++)
{
Animal& a = *animals[i];
if(typeid(a).name() == "class Dog")
{
dogs.push_back(*a);
}
}
}
但显然 *a 不是指向狗的指针,所以它不能添加到狗?
那有意义吗?