I'm a C++ guy myself, so feel free to shoot any questions you have my way.
As for where to start, I'm thinking the best place to start is in how you arrange your .cpp and .h files. You should think of the .h files as a table of contents and the .cpp files hold the actual stuff. The .h files are an index of what resources are available, and each resource is defined inside a single .cpp module.
It helps to know how compilation actually works:
What happens is that each .cpp file becomes one module, and any #include statements are removed, and replaced by the contents of the text file you #included. It's literal cut and paste, so there's no deeper semantics at work here. This can cause problems when you #include the same .h file in two .cpp files. Anything in the .h file is replicated, so if you have a variable "int money" in a .h file, then each .cpp file now has a separate variable called "int money", as far as the compiler is concerned. And since two global variables cannot have the same name, this causes a compiler error. Similar with functions bodies in a .h file, they are replicated for each .cpp file that references them. To get around this, you add extern to variable names in a .h file, and have the actual variable itself in a .cpp file. extern just means that it's an reference to a variable which exists in a different module.
extern int money;
For functions, you just make the function header in the .h file, then make the full thing somewhere else. This also speeds up compilation, because any change to a .cpp file only recompiles that one .cpp file, whereas changes to a .h file affect all .cpp files which reference it. So you want to localize anything you might work on.
Another thing is for book-keeping. Set up your header files like this:
#ifndef WHATEVA
#define WHATEVA
//
// actual .h stuff goes in the middle
//
#endif
WHATEVA should be different in each .h file. This tells the compiler to skip the code if it's already been included in that one .cpp module. e.g. if you had a vector library that was #included by many other .h files, then it might get added in two or more times for the same module, which also causes an error. The #define macros prevent that ever being an issue.