Comment Re:C++ is C (Score 1) 641
Interestingly, I've found many C libraries actually use a very OOP-like interfaces - just without the "objects". For instance, you'll first call some sort of create() function to get a pointer to a struct that contains state data or perhaps a handle. You then pass this pointer or handle to "member" functions - essentially, a function that operates on or modifies the state of that data. Then you release the allocated context struct via some destroy() function. That's pretty close to what a class and it's member functions do - the only difference is that C++ member function pass the handle or context pointer implicitly as a hidden first parameter. The create() and destroy() functions are the constructor and destructor respectively.
Granted, it gets a bit more complicated when you start dealing with inheritance and various access permissions, but that's really the heart of OOP - packages of data and groups of functions that operate on that data. C++ certainly wasn't my first language - I knew BASIC and Pascal before that, but the basic premise of OOP clicked with me. It definitely did take a while before I was *good* at designing classes though. For all of my career, we used C++ at work, so I was learning and improving all the time, and there were always colleagues who I could ask for advice. If you don't have anyone who is showing you the ropes, I can see how that would be tough.