If you've never used it for like anything before it might be a bit tricky for building something from scratch though.
Honestly my advice is to find a good open source project that uses it that you like (*looks pointedly at his signature*) and help them out. Or at least choose something a tad bit simpler if you intend to build from scratch; it can quickly become a lot of work. (Though I guess if you were doing something like minesweeper it wouldn't be a big deal ).
Oh I recognize you from the forum then. Hi.
In any case, the code for Cataclysmdda is very clean, in comparison to a lot of projects that I've had to dig around in. For someone who's familiar with the syntax of c++ but not perhaps the practices, it's not a bad place to start.
So I don't know how many people know (or care about) this, but I've been in an IT (and therefore programming is one of the more important classes) high school for 2 years now, and right now my curriculum covers C++ (no OOP sadly), JavaScript and later on probably also PHP.
And well, sometimes my brain gets completely overwhelmed by the vastness of the IT field as a whole (even though i'm only focused on the fraction of it), yet the stuff I'm doing is relatively simple still.
(I much prefer JavaScript to C++ right now but that's beside the point)
I guess this is a glorified PTW. Depending on how anxious I might feel I'll probably post here sometimes because man oh man am I bad at programming...or more specifically, math, which from what I gather is a pretty significant part of it.
(Though I'm not the one doing the programming specifically I'm part of a free open source game project I'll probably make a thread about at some point.)
First ask yourself, "Why do I want to use OOP"?
Is the answer along the lines of "Keeping data confined to structures and members relative to them is nice", then don't. If the reason is that your project is complex and would require a lot of duplicated code without it, then that's a good reason to do it.
Of course, I've seen people argue that what c++ calls OOP is not what the concept is meant to provide. Those people aren't helpful either and will likely do one of three things; tell you to learn something with a "better" oop design like smalltalk, objective-c, or any number of pointless unused languages; tell you that java's better, because it has a root object and the point of oop originally had
nothing to do with message passing; or tell you to teach yourself a scheme and implement your own object orientation. That last one is the worst, but it is actually easy to do until you want some performance.
OOP isn't something tied to language, it's a method for reducing complexity. You could do it in assembly if you really wanted to(but you probably don't), you can do it in C, and you can do it in any decent language worth learning, and quite a few that aren't.
Object orientation is nonsense if you can find a better way.
Try functional programming, that's been newly
unfucked improved in c++11 so you should be able to use it well.
Functional programming is just another way of reducing the amount of object orientation in a complex project.
Also don't worry, math isn't important in programming. It's important in a lot of things regarding it, but the reason I started to learn programming was because math was too tedious for me to care about, so I wanted machines to do it for me. Besides, if you find it difficult to learn math through equations and rules, then algorithms are an alternative starting point to learn it.