#include <iostream>
#include <typeinfo>
#include <cxxabi.h>
using namespace std;

class O {
public:
	virtual void vfunction()
	{
		cout << "hello";
	}
};

class C  : public O 
{
	public:
	C() {};
};



int main() {
	// your code goes here
	
	O* varb = new C();
    
    
    char   *realname;
    int status;

  // exception classes not in <stdexcept>, thrown by the implementation
  // instead of the user
  realname = __cxxabiv1::__cxa_demangle( typeid(*varb).name(), nullptr, 0, &status );
  
  cout << realname << endl;
    
    cout << __cxxabiv1::__cxa_demangle( typeid(varb).name(), nullptr, 0, &status );
	
	return 0;
}