c++ cast base class pointer to subclass code example
Example: C++ pointer to base class
#include <cstdlib>
#include <ctime>
#include <iostream>
#include <vector>
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<Parent*> parents;
srand(time(NULL));
for (int i = 0; i < 10; ++i) {
int child = rand() % 2;
if (child)
parents.push_back(new Child);
else
parents.push_back(new DifferentChild);
}
for (const auto& child : parents) {
child->sayHi();
}
return 0;
}