You are making a big mistake here. You should not try to learn C++ by just reading source code and experimenting. This is a path that will lead you nowhere.
The only way to try to learn C++ is to get a good book and read it cover to cover.
C++ is illogical in many places and no matter how smart you are there is no way you will guess correctly all of C++. Actually being too smart can be a problem for guessing because there are cases in which the C++ language design contains true mistakes that cannot be removed for backward compatibility reasons. If you are smart your guesses will be logical... and dead wrong.
Also note that while often you can write a few clear and reasonably looking lines of C++ and they will make the right thing efficiently, it's also well possible to write another few lines that are even more logical and good looking but that instead will have horrible performance and/or undefined behavior.
Undefined behavior also means that when you make a mistake in many cases the compiler and the runtime will not complain and things will just start behave crazily after a while. Undefined behavior is the very reason for which experimenting is not a good path for learning C++.