It's a real shame that Object Oriented programming got perverted into a boatload of boilerplate, as evidenced in C++, Java, etc.
I was all on board with it in Borland Pascal for Windows, and Delphi, but when I looked at C++, I got off that train. You can always take a good idea, and go too far with it... I never did understand the whole Factories for classes thing.