#include <iostream>
#include <string>
class animal
{
public:
virtual std::string say() const = 0;
};
class cat:
public animal
{
public:
virtual std::string say() const
{
return "meow";
}
};
class dog:
public animal
{
public:
virtual std::string say() const
{
return "bark";
}
};
class animal_container
{
public:
void check(const animal &a) const
{
std::cout << a.say() << std::endl;
}
};
int main()
{
animal_container a;
cat c;
dog d;
a.check(c);
a.check(d);
a.check(d);
a.check(c);
return 0;
}
Comments