title: runtime type comparison
body: <p>I need to find the type of object pointed by pointer.
  Code is as below.</p>
  
  <pre><code>//pWindow is pointer to either base Window object or derived Window objects like //Window_Derived.
  const char* windowName = typeid(*pWindow).name(); 
  if(strcmp(windowName, typeid(Window).name()) == 0)
  {
    // ...
  }
  else if(strcmp(windowName, typeid(Window_Derived).name()) == 0)
  {
    // ...     
  }
  </code></pre>
  
  <p>As i can't use switch statement for comparing string, i am forced to use if else chain.
  But as the number of window types i have is high, this if else chain is becoming too lengthy.
  Can we check the window type using switch or an easier method ?</p>
  
  <p>EDIT: Am working in a logger module. I thought, logger should not call derived class virtual function for logging purpose. It should do on its own. So i dropped virtual function approach.</p>