C++ has one big flaw the way I see it, and that is, it is incredibly difficult to learn well and it's very easy to teach badly.
I have been programming C++ for many years now, I still look back on code I wrote a couple of years ago and can see how my style has development, and I won't even dare review the code I wrote whilst learning the language.
That said, once you've straddled to learning curve, I really do believe that it is a great language for more than just niece core of use cases. Having learnt it there would be very few cases I would use C over C++, nor would I use an other compile "General purpose" programming language, like Java , D, Go or C#. The "next level up" for me is scipting with python or bash and the step down is asm or inline intrinsics. I am happy with C++ in the middle of that wide chasm.
If you want/need to learn C++, learn C++. Learning C to learn C++ is a really poor idea.
There are plenty of people in my office who are like that and they can't see the wood for the tree. Writing out their own for loops instead of using whatever std algorithm would do the job better. Holding their own owning pointers in the presence of exceptions.
The problem is people tend to not to actually learn C++ properly, cover to cover. They just learn the bits they need as an when they need them missing out all sorts of details in the middle.
Hmmmm. why do you teach arrays before containers? And why is so little if any time spent on the std:: containers (ctrl + f deque returns nothing).
The word template is mentioned 3 times, and never once on how to write your own basic templates (no, that's should not be considered advanced).
Finally, why do you keep using the `.open` member function for your streams rather than specifying the file path in the constructor and then testing the validity of the whole stream rather than individual flags.
You also don't even begin to touch on the standard algorithms. Take for example the book "Accelerated C++". It's only 300 pages, but it has the reader writing modern code with containers and standard algorithms with in the first few pages. It's a much better approach in my opinion.
That may very well be the problem, especially since on shutdown/logout Windows 7 always shows some items not closing, even if none are left. But emacs is about 50-50 on closing while other things always go away.
GNU Emacs 24.3.1 (i386-mingw-nt6.1.7601) of 2013-03-17 on MARVIN
C++ has one big flaw the way I see it, and that is, it is incredibly difficult to learn well and it's very easy to teach badly.
I have been programming C++ for many years now, I still look back on code I wrote a couple of years ago and can see how my style has development, and I won't even dare review the code I wrote whilst learning the language.
That said, once you've straddled to learning curve, I really do believe that it is a great language for more than just niece core of use cases. Having learnt it there would be very few cases I would use C over C++, nor would I use an other compile "General purpose" programming language, like Java , D, Go or C#. The "next level up" for me is scipting with python or bash and the step down is asm or inline intrinsics. I am happy with C++ in the middle of that wide chasm.