just a guess
try to put the an empty “step()” method
is declared but not implemented
Thanks a lot Sig. Tuzzi.
It works!!! An empty step() method was missed. You saved my Day.
For anyone following up on this later…
__ZTV8Resistor is what’s called a ‘mangled name’. Because c++ has overloading, the linker can’t just rely on the name of a function to figure out what connects to what. Instead the functions and other symbols are referred to by a name which includes extra stuff to describe more about them, in order to make them unique and identifiable.
In this case __ZTV8Resistor means the _vtable for the Resistor class. This was missing because the declaration of Resistor said that it had a step function, but there was no actual compiled implementation for it.
There are online demanglers that you can use to turn a mangled name into a more recognizable description of the missing object.
Thanks for a very clear explanation David.
you can also use c++filt
if you have it installed (if you’re building on a Mac, you do, or if you happen to have clang installed)
$ c++filt __ZTV8Resistor
vtable for Resistor
but that only gets you as far as knowing what you’re missing
Good to know… Thank You Jerry