In most cases, when transferring an object between C/C++ and Perl, the object pointer is stored as an integer in SV, and it is statically casted into type by the simple way:
$var = INT2PTR(MyClass*, SvIV(SvRV($arg)));
When the object address is set into SV in descendant method wrapper, and is extracted in parent method wrapper, the address of the parent object will always same with the address of the descendant object. However, in some C++ cases, the address of an parent object is different from the address of the object itself. So the address may be incorrect.
How can I process such issue? It seems RTTI must be used, as the type need to be casted at run time.