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.
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>
|
classes |
C++ Classes
ValueTypes - pdf
STR class repository
|
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
Compound Objects
|
Illustrates the four class relationships: inheritance, composition, aggregation, and using.
|
Inheritance |
Inheritance.html
|
Illustrates basic ideas with a simple example.
|
Templates |
Templates.html
|
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:
- Course Page
-
Instructor's Solutions for recent Midterm Examinations:
|