The best way imo is to pratice what you already know by making code. As it is often a challenge to come up with what to program on your own, I would recommend projecteuler.net as a place to get ideas; that is if you are interested in the math aspect of programming
I am currently learning c++ right now from some awesome video tutorials. You should definitely check them out the guy explains everything really well. I just pull up my the video on half my screen code::blocks on the other half and write codes as he does. I would recommend not just copying down what he does, but instead try to right similar codes that are slightly different but do the same thing.
Right here, look at all the questions people ask, read about what their assignments are and see if you can 1. fix their code, 2. write their project, 3. think of other ways to use what their projects are for.
You will learn several ways, the wrong and right way, how to output to a file, read a file and put vars in an array, make calendars, menu programs, card games, etc....
@Everyone but SamuelAdams
The OP asked for good places to learn. There is no doubt that books are good places to learn, but I haven't seen a book yet that I consider good. The Dietel and Dietel books are garbage. My first C++ programming book was made from them and they couldn't properly separate C code from C++ code (The prologue specifically said there was no C specific code in the book where there is a C++ alternative, however made constant references to printf(), malloc, and refused to cover any OOP at all, aside from structs). Granted, they have improved over the years, but just being a big seller doesn't mean they're good.
Thinking is C++ isn't horrible, but I don't describe that as effectively good. I do think that the best book, that wasn't even mentioned here is Bjarne Stroustrup's Book, Programming - Principles and Practice using C++. It's intended for class room learning, and the price reflects classroom prices, but compared to other text books, it's actually cheap (~$50USD). It's also structured so that you can learn at your own pace and it can be read straight though. I currently am reading his The C++ Programming Language (Sp. Ed.), but I can't wait to get 4th edition.
I do strongly suggest that if you want to go the book route, get a physical copy. You're going to be using it a lot, so the extra cost of a hard back is worth the abuse you're going to put it through (hoping that it's a good book). Also remember, it's yours. Write notes in the margins, highly important facts (Do not turn your pages yellow by highlighting everything), use sticky notes and write small notes pertaining to that/those specific page(s).
I love you answer, it's one of the best learning tools ever, and it's free. The only downside to this is the amount of knowledge the OP has is unknown.
If you're just starting out, I'd suggest the tutorial on this site. It's brief, not the best one out there, but it does adequately teach you the fundamentals. It seems boring that you have to read, but teachers aren't cheap and a good C++ teacher is hard to find (I was blessed with my first C++ teacher). Don't worry if you don't understand everything even after the 5th time of reading it, C++ isn't exactly easy, nor is any language. If you find yourself constantly getting stuck, attempt to make your over version of the examples offered pertaining to the troubled area.
One of the best tips that I can give you is that if you really want to learn C++, DO NOT copy paste examples, other code. Learn to type it in by looking at it. After you do a few, you'll learn how the language is structured, when and where semi colons are supposed to go, what is legal, and what isn't. Yeah, it sucks when all of that code is staring you in the face, but show some resistance.
Once you feel you have a pretty good understanding of the overall syntax and structure of the language, browse the forums, look for homework questions, look for the "what is wrong with my code" posts, and attempt to fix them. I'd refrain from posting your solution until you get more comfortable. Also, there is an option at the bottom of every thread to "track" the topic. Get email alerts so you can read what everyone says while you're out and about. Or just subscribe so that you're notified when someone posts new content to a thread. A lot of the experienced members here will share more than adequate answers with members who attempt to figure it out themselves.
Once you feel you're pretty good at doing all of that, search around for a few advanced topics that will broaden your knowledge. C++, as with all programming languages, is a constant learning process. Anyone who says they know it all is a pathological liar. Even the creator doesn't know the entire language (but he did help write a good portion of it and has a say in what's added, etc.)