General principles
Plugin interface is not object-oriented. Perharps this will come as surprise to you, but all my experience tells me that OOP is not as good as main software vendors try to sell. It is really good if you write small application performing standard functions. For a big weird project (and OllyDbg is a big weird project) OOP gives no real improvements in development time, errors in components are very hard to locate and even harder to correct. And - contrary to what vendors tell us - OO programs are usually slow. Stop crying, this is only my opinion, albeit proved by all my experience in the last 15 years or so. Anyway, try to swallow that you will get no ready-to-use objects here and are doomed to free memory by yourself when plugin terminates.
OllyDbg's author may didn't like OOP, but could I say that the explain below was too one-sided? Even experts have some respects that they are not good...
So OllyDbg should be written by pure C! That makes me have lots of things to do for reverse programming