title: What can cause a pure virtual function call in C++?
body: <p>I teach a C++ programming class and I've seen enough classes of errors that I have a good feeling for how to diagnose common C++ bugs.  However, there's one major type of error for which my intuition isn't particularly good: <em>what programming errors cause calls to pure virtual functions?</em>  The most common error I've seen that causes this is calling a virtual function from a base class constructor or destructor.  Are there any others I should be aware of when helping debug student code?</p>