First you'd start learning how to program, not just games. Learn the syntax, programming logic, and so on. On its own, C++ is just a programming language, it can do anything but it comes bare-bones with a fairly low-level standard library. There is no "PlaySound" function, for instance, you have to write it yourself or get an existing engine which is capable of audio playback. As an analogy, C++ is like a hammer. It can hammer nails in pretty well, but it won't build houses on its own, that's your (the programmer's) job.
Then, if you are to use an engine, it provides lots of stuff to help you push stuff on the screen, make sounds play, load stuff from various file formats, and so on - indeed, that's what an engine does. For instance, it may provide you functions to load models from the disk, or to play an MP3 file, it will give you tools to display objects on the screen and shade them however you want, it may even help you in the game logic by implementing a physics engine, such that you only need to provide it with your objects' coordinates and maybe a collision detection function and it'll do the rest for you.
Then, you put it all together, and you have a game. Of course, it takes a lot of work, and even just learning how to use the engine will take a long time especially if you are going to use an unmanaged, low-level C++ interface. For instance, using DirectX, you will have - literally - dozens of functions, methods, data structures to juggle with, of course you probably won't use most of them but you know that they are there should you need them. Moving up a bit, SDL will expose most of this functionality but in a more friendly manner. As you go to a higher interface level, you naturally lose some flexibility and functionality, but things are a lot easier to set up.
Then you also need to distinguish "game engine" and "graphics engine" which is a common mistake. A game engine will give you the tools to do everything in your game, ranging from playing sounds and video to displaying complex models on the screen and even networking. A graphics engine on the other hand will only help you for the graphics part of your game, you're on your own for the rest (of course you can combine engines).
All in all, without prior programming experience, I suggest starting small with basic text-based games, once you've learnt the ropes of the language. Something like a "guess the number" game, then a text-based roguelike, then maybe move on to a graphical minesweeper or breakout (this one seems to be popular these days). Then you can give 3D games a shot, if you want to make one, and so on.. take it one step at a time or you will get discouraged.