There are different approaches. Documentation if present should help, but in the real world sadly there are quite a few poorly documented code bases. In many cases you can ask some senior developer in the company for guidance, make sure to ask for some high level view of what and how are things done in each module.
You can use a UML analysis tool to extract information from the code base, I suggest BoUML, it is not pretty, but it does a good job at processing C++, and you can create class diagrams by just pulling one class and expanding from there.
An IDE or a similar set of tools that help you navigate through code will also help, as they will allow you to navigate through code much easier than with a plain editor.
While doing the analysis, make sure that you take notes on what you believe each part of the code does, or where you have doubts, then ask a senior in the company to confirm your understandings or to fill in the gaps.