Learning C++11 / c++03?

Hello,

I am following a PDF-tutorial 'Jumping into C++ (Alex Allain)', that does not cover C++11 or later, I sincerely wonder, would I do better by learning/picking up a newer c++(11,14~~) book straight off, or are the differences minor?

I have no previous experience in programming and have finished 18 chapters (200 pages) as for now.

My following chapters that remains are;
- Vectors
- More about strings
- Debugging with code::blocks
- Program design
- Hiding the representation of structured data
- The class
- The lifecycle of a class
- Inheritance and polymorphism
- Namespaces
- File I/O
- Templates in C++
- Formatting output using Iomanip
- Exceptions and error reportings

The reason I am asking, is because I feel that I may learn things that will be completely deprecated / waste in the future? If I will switch to c++11 in the future (let's pretend I want to create a 2D game by then), and thus have to re-learn a lot?

I have no idea about the survivability/differences of C++03 and such, I am just some random beginner programmer that wants to learn things that won't be to a complete waste in the future! (I have of course googled a bit, but I am not yet so sure despite that).

You could also suggest me to skip a few of the chapters or recommend me any better book, I'll take any suggestion!

Alternatively I could just finish the book, and then try to find a more suiting c++11 book, I just don't know if it will be worth it, if c++11 offers very much better solutions, which makes me not to want to use the c++03 way, ever again?

If this was the wrong thread to post, I apologize.
Thanks for reading!
Last edited on
C++11 and 17 are (will be) major core language updates.
In general, every other standard release introduces core language features, while the alternates are tweaks or improvements to the previous.

C++11 introduces several extremely important things.
Lambda (anonymous) functions and closures.
Typesafe variadic ("vararg") templates, variadic preprocessor macros.
Move semantics and perfect forwarding.
Regular expression, multi-threading, and time libraries. Some new containers.
Serious improvements to so-called "smart" pointers and ownership semantics in general.
New initialization syntax.
Automatic type deduction. Constant expression computation at compile-time.

And much more, arguably less-important stuff. C++17 will introduce even more features, but you shouldn't worry about those until it's actually released. Worry about the new stuff added to C++ after you learn the old stuff added to C++ -- Nothing you learn will be replaced.

I wouldn't consider C++03 "modern" C++, but that doesn't mean that what you are learning is not useful. You will need an understanding of C++03 to understand C++11, and the new language features will come easily.

Going from C++ to another C++ won't be hard.
You're fine!

Oh, just don't use auto_ptr. ;)
Last edited on
Thanks man! Appreciate your answer! I'll keep going then =D
Oh alright, won't do:P
Topic archived. No new replies allowed.