Jump to

v05-l2-codeOutput

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);
}

???