A Concise C++ Tutorial for Engineers
by Dan Swain, email@example.com
Disclaimer This tutorial is a work in progress and is a bit of an experiment. Also, some of this is about what I believe to be good practices, and it's therefore possible that you may disagree. It's also possible that I may say some things that are just plain incorrect. If you catch me in the act, please do let me know!
This tutorial might be for you if
- You're smart and have some programming experience in any language - you know how to use variables, if/then/else, for loops, etc.
- You don't have a lot of experience working with compiled languages like C and C++
- You want to understand ideas from object oriented programming and use them to tackle large and complex projects.
I say this tutorial is for 'engineers' because, in my experience, they largely fit that description. Except software engineers, but who's a software engineer that's searching for a C++ tutorial? :P Anyways, I'm hoping that it's applicable to lots of people.
This will not be a textbook, nor will it be a reference. I include the word "concise" in the title because I want this to be something that you can go through quickly. Remember how I said this might be right for you if you're smart? Part of that is you're smart enough to use google and whatever other resources are available to you to fill in the missing details.
This is also a bit of an experiment in that I'm writing it as a github repository. I'm writing the text in markdown files (which GH automatically formats for display) and will try to attach actual pieces of code where I can. That way, you can clone the repository and play along.
For the most part, I'm going to write this assuming that you're using some variety of Linux or a Mac. I'll try to be platform agnostic, but especially early on when I'm talking about compiling things, I'll be giving instructions on how to compile using g++. That doesn't mean you can't use these instructions on windows: there are several routes available to compile c++ programs on windows. Use google!