T B H P N

Getting Started with C++

"Start where you are, use what you have, do what you can."
- Arthur Ashe

This page provides resources for students needing a quick introduction or refresher for the C++ programming language. It should also be useful for anyone needing to prepare for interviews for software development positions.

Getting Started with C++

C++ is an elegant but somewhat complex programming language that is powerful, supporting Structured, Generic, and Object Oriented designs.

It has facilities for making instances of classes that provide value type behavior, e.g., deep copy and assignment. C++11 has added support for move semantics, enabling construction of perhaps complex data structures in some local scope and efficiently transporting the result to the calling scope. It also supports access and manipulation of memory when needed, allowing direct use of operating system APIs.

It is widely used in industry for system level programing of frameworks and real-time systems as well as for desktop and Scientific Computing applications.

C++ has a well engineered standard library that provides strings, I/O streams, template containers, threads and locks, and numerics. It does not provide support for directory and file management, but that is fairly easy to provide using operating system APIs (see C++ FileSystem in Sample Code, below).

To be effective you need to understand the structure of a C++ class, its constituent parts, and how to package its source code and binaries. The best way to learn that is to look at a lot of well crafted code and to write a lot of code, armed with a modern IDE, up-to-date compiler, and a swift editorial red pencil.

Here are the first things you need to look at to get started:

C++ Link Description
Basic Syntax C++ Survival Guide This document presents basic language syntax for pointers and references, classes, class relationships, and std::vectors<T>
Course Summary CourseSynopsis.htm A quick walk-through of topics covered in CSE687 - Object Oriented Design.
classes classes.htm
Str class
Illustrates the important member functions shared by all C++ classes.
Str is a string class. It illustrates, in detail, how to implement the important parts of a class.
class relationships Class Relationships
Class layout
Illustrates the four class relationships: inheritance, composition, aggregation, and using.
Inheritance Inheritance.htm . Illustrates basic ideas with a simple example.
Templates Templates.htm . Illustrates basic ideas with a simple example.
Standard Template Library (STL) STL containers and iterators STL containers are the basic building blocks for many applications.
Project #1 will use them.
FileSystem for Windows FileSystem-Windows Surprisingly the Standard C++ Library provides no facilities for retrieving and using Directory information. You will find this code from the college server offers File, FileInfo, Path, and Directory classes that are about as easy to use as the .Net Framework counterparts.

After you've gotten started:

After you've become comfortable with the material in the table above, you should look at the links below to help you embark on your C++ journey. I believe you will be well rewarded for the effort you spend here. Beginners may wish to focus on the tutorials, first few code examples, and blog entries.

Tutorials and References:

IDEs:

Videos:

References:
Sample Code - ordered by complexity, simplest first:

CSE687 - Object Oriented Design:
Quad View