title: Why doesn't polymorphism work without pointers/references?
body: <p>I did find some questions already on StackOverflow with similar title, but when I read the answers, they were focusing on different parts of the question, which were really specific (e.g. STL/containers).</p>
  <p>Could someone please show me, why you must use pointers/references for implementing polymorphism? I can understand pointers may help, but surely references only differentiate between pass-by-value and pass-by-reference?</p>
  <p>Surely so long as you allocate memory on the heap, so that you can have dynamic binding, then this would have been enough. Obviously not.</p>