The C++ program fails, and reports the following run-time error:
runtime error R6025
- pure virtual function call
This error occurs when your application indirectly calls a pure virtual member function in a context where a call to the function is not valid. In most cases, the compiler detects this and reports the error when building the application. But depending on how your code is written, sometimes the problem is detected only at run-time.
The error occurs when you indirectly call a pure virtual function within the context of a call to the constructor or destructor of an abstract base class. This is illustrated in the sample code below, along with some more description.
Calling a pure virtual function is a programming error, so you need to find the call to the pure virtual function and rewrite the code so it is not called.
One way to find a call to a pure virtual function is to replace the pure virtual function with an implementation that calls the Windows API function DebugBreak(). When using the debugger, DebugBreak() will cause a hard-coded breakpoint. When the code stops running at this breakpoint, you can view the callstack to see where the function was called