<分区>
在 C++ 和多态性方面遇到了一些麻烦。我意识到这是一个非常简单的问题,但我真的很难从 Java 迁移到 C++,尤其是在指针方面。
我有一个“玩具”类,并继承了“玩偶”和“汽车”类。在每个类中,我都有一个名为 printToy() 的函数;我有一个包含玩偶、玩具和汽车对象的 vector 。我想在每个索引处遍历调用“printToy()”的 vector ,但是当我这样做时,它会调用 Toy 类中的方法,从而给我输出“Toy Toy Toy”而不是“Toy Doll Car”。感谢任何能帮助我的人!
例子如下:
class Toy{
public:
void printToy(){
std::cout<<"Toy"<<std::endl;
}
};
class Doll: public Toy{
public:
void printToy(){
std::cout << "Doll" << std::endl;
}
};
class Car: public Toy{
public:
void printToy(){
std::cout << "Car" << std::endl;
}
};
int main(){
std::vector<Toy> toys;
Toy toy;
Doll doll;
Car car;
toys.push_back(toy);
toys.push_back(doll);
toys.push_back(car);
for(int i = 0; i < toys.size(); i++){
toys[i].printToy();
}
return 0;
}