Hi,
you actually made a deep question, which reminds to lots of answers. Firstable I'd suggest you to read a book about C++ in general because after a year you might not remember how to code that much; yet you can look for what you need serfing in the net. Knowing C++, however, doesn't mean that you can code a cheat, because you will have to work with WinApi, you should read and practise with them before trying to edit a cheat ( in my personal opinion ). In particular you can check out Wikipedia, and you would know that:
--> https://en.wikipedia.org/wiki/Windows_APIThe Windows API, informally WinAPI, is Microsoft's core set of application programming interfaces (APIs) available in the Microsoft Windows operating systems.
Nevertheless I guess you haven't understood that much from what you saw till now; so let me explain you quickly what's the point. Substantially, in order to have a working cheat made by your own, you will have to modify some established addresses in the memory; of course you will do it with some functions/procedures contained in the <windows.h> library ( you'll learn what it contains once you'll get informed about WinApi ).
Okay, it could seem to be clear till now, bet here, suddenly, the problems comes out: I talked about addresses didn't I? Well, what are those addresses? Where are they? How can I find them? This will be your main problem at the beginning ( still in my opinion ). This is because to modify those addresses you can freely use some easy functions, just put inside the parametres needed and that will work ( after you've " linked " the right window which the the code has to deal with ); yet this stuffs can be done after that you've found the addresses. Well, you can find the dynamic addresses with CE ( Cheat Engine ) and write your own " hack " which changes the values that you've found with CE. The problem now is that those addresses are not static, this means that if you switch off your pc and then you turn it on, you won't be able to use the same code again, because the addresses would've changed and you should find them out again.
In order to fix this problem you have to point scan the addresses you of the features you are interested in; so, after have reduced the values of the pointer scan, you can easily look for the right static address, and after this your first " cheat " will work properly.
Well, if you want to achieve this you also have to practise with CE ( if you haven't done it yet ) and even more with pointer scans, which are essential to find the static addresses of the features.
I tried to explain quickly what people are used to learn in months, so you will have to learn a lot to build properly what I wrote;
However good luck, I hope to have been useful somehow