title: Implementing events in C++
body: <p>After some research on internet for an efficient way to implement events in C++, I found the following methods</p>
  
  <ul>
  <li>Interface class - Applications can override the virtual functions in the derived class</li>
  <li>Normal Callback mechanism using function pointers</li>
  <li>Delegates using Boost.function</li>
  <li>Signals and slots (as used in Qt)</li>
  </ul>
  
  <p>I am confused on advantages and disadvantages of each of these and when to use anyone of this.
  Which is the best method and why?
  Is there any other solutions which are better than the ones listed?</p>