The emitted code is highly name mangled - one of the reasons why you encapsulate the C code in "extern C"
https://en.wikipedia.org/wiki/Name_mangling
If you got rid of name mangling (and a few other C++ features that are besides the point), you could certainly call C++ from C. The thing is - your C calls would look exactly like what the article is suggesting. That's why it's important to learn this technique: it is what your C++ compiler is doing under the hood. Indeed, the very first C++ compilers were just preprocessors that transformed C++ syntax into the type of vtable + base class + first parameter indirection that you see here.
If current C++ to C transpilers don't handle naming well, that's a problem that should be worked on.