What is the output of the following code ?
#include <iostream>
using std::cout, std::endl;
class Animal {
public:
virtual void speak() { cout << "Graoump"; }
};
class Cat: public Animal {
public:
void speak() { cout << "Miaou "; }
};
void listenTo1(Animal a) { a.speak(); }
void listenTo2(Animal& a) { a.speak(); }
void listenTo3(Animal* a) { a->speak(); }
int main() {
Cat c;
listenTo1(c); listenTo2(c); listenTo3(&c);
}