📅  最后修改于: 2022-03-11 14:44:50.591000             🧑  作者: Mango
#include
#include
#include
#include
class Parent {
public:
virtual void sayHi()
{
std::cout << "Parent here!" << std::endl;
}
};
class Child : public Parent {
public:
void sayHi()
{
std::cout << "Child here!" << std::endl;
}
};
class DifferentChild : public Parent {
public:
void sayHi()
{
std::cout << "DifferentChild here!" << std::endl;
}
};
int main()
{
std::vector parents;
// Add 10 random children
srand(time(NULL));
for (int i = 0; i < 10; ++i) {
int child = rand() % 2; // random number 0-1
if (child) // 1
parents.push_back(new Child);
else
parents.push_back(new DifferentChild);
}
// Call sayHi() for each type! (example of polymorphism)
for (const auto& child : parents) {
child->sayHi();
}
return 0;
}