You realy cannot learn C++ programming based on tutorials only.
You will need to buy a book eventually.
Tutorials make for a good startup. However they have to be generalistic in nature (they wouldn't be tutorials otherwise). The concepts therein are presented lightly and the examples hardly ever have much meaning in real life computing. They are poweful tools though, in the sense they provide an understanding of some of the language features; what are they and how they are used. But, again, they do this at the expense of depthness.
Books, on the other hand, have a lot more space to go into depth about the language features. And that is probably what you are missing. I strongly suggest you buy either Accelerated C++ or C++ Primer.
There is another problem with tutorials. Most of them are amateurish. There are fine tutorials out there, but there are others that do a very bad job at teaching C++. In fact they will only add to the confusion (I guess this is true of some books too). The preciseness of language choices when writing tutorials or books is fundamental when one wants to teach a programming language like C++. There is a big difference between a pointer to an array and an array of pointers, and yet many authors chose to confuse readers by choosing terms like "a pointer array", which can mean both or none at all. Once C++ is understood this choice is no longer a problem. We know what it means from the context surrounding it, but for someone learning the language, the author didn't provide him a good service. Another example is not applying correctly words like "definition", "initialization", "declaration".
Learning C++ can be a frustrating experience already without these problems adding to it. What I strongly suggest you is to follow a few guidelines:
- Concentrate on the programming language first. Learn the language. Get yourself one of those two books above (my personal favorite is C++ Primer) and read them carefully. Experiment a lot. Even if what is being explained to you seems obvious, write the code to prove what the book is saying nonetheless. Read, code, read, code... ad aeternum.
- Write code that intentionally explores the bad practices the book is telling you not to use. See what kind of compilation errors you get. Try to remember them for the future. More important, try to understand why it is a bad practice. For example, when learning about dynamic memory and memory leaks, purposedly provoke memory leaks in your code. Write cout statements inside the object destructor to see if it was ran or not and when it was ran. Explore everything! What you should do and what you shouldn't do. Half of the way to understand C++ is to understand about what you shouldn't do with C++.
- Learn your debugger. This is probably one of the most important things. You absolutely, utterly, without any doubt whatsoever, need to learn how to debug. You are not going anywhere if you don't learn how to debug. It's not complicated, you need to learn mostly about breakpoints and watches. At least for now.
- Learn your debugger. I've put it here again to stress this out
- Do not, I repeat,
do not try to write a complete program without having gone through the book at least once. This is important because most people try to put the wagon in front of the horses, only to find out later they they will need to code a feature they haven't learned about yet. Then they go on to read hastily about it, implement it in some bad way, and not gain a clear, in depth, knowledge of it. The reasult is that they think they know how to use it, when in fact, more often then not, they have only scratched the surface. Do not try to write a full program before you are done with the book at least once.
- Be patient and be veeeery slow. Learn everything slow. Be sluggish in your learning of C++. You are not going anywhere and the language will not puff away. Understand that it takes around 2 years to be proficient in C++ and maybe a couple more to feel totally at ease with it. The important thing, what you should concentrate most is understanding that first you need to know what the language provides and how it provides it (C++ features and syntax) and only then you should concentrate on how to effectively use those features. Don't plan your learning process, don't set yourself deadlines. Be patient, slow and sluggish.