I\'m having a devil of a time understanding references. Consider the following code:
class Animal { public: virtual void makeSound() {cout << \"rawr\"
If you want to return a polymorphic type from a method and don't want to assign it on the heap you could consider making it a field in that method's class and making the function to return a pointer to it of whatever base class you want.