Sample C++ Programs
This code does NOT use C++ 11. This is simply for convenience because
the machine hosting this website has an older C++ compiler.
The differences between what is here and using version 11 or later versions
are not significant. Here is a good
explanation of initialization in C++11.
This code also always uses "using namespace std;" ... for simplicity.
In general, it is best to not tie up all names, but instead individually
tie an identifier to its namespace with the binary scope operator, e.g.,
std::cout << "hello world" << std::endl;
Structured (not OO) C++ programming examples:
Bubble sort: bubble.cpp  
bubbleWithTemplate.cpp
... using data: bubble.txt
... with ... output
Reading one char at a time using get():
get.cpp
Reading one line, using get():
readArray.cpp
  or using getline():
readGetline.cpp
... using data: read.txt
... with ... output
Formatting using setw():
format.cpp
... with ... output
Dynamic two dimensional array:
twoDarray.cpp
... with ... output
Convert string object to char array:
stringConvert.cpp
Messing around with pointer arithmetic:
ptrArith.cpp
More pointer arithmetic, pointers to pointers:
ptrptr.cpp
pointers to functions:
ptrToFunc.cpp
... with ... output
Mess around with basic pointers, swap pointers:
ptr.cpp
Example using a vector from the STL:
vector.cpp
Towers of Hanoi: hanoi.cpp
... with ... execution tree
Range-based arrays (since C++11):
array-range-based.cpp
Smart pointers: smart.h
... smartdriver.cpp
... valgrind output (shows no leaks)
Rational class:
Simple class, not documented, no overloading operators:
rat.h ...
rat.cpp ...
ratdriver.cpp ... with
output
Better class, documented, overload operators, etc.:
rat2.h ...
rat2.cpp ...
rat2driver.cpp ... with
output
Array class:
Simple int array class:
array.h ...
array.cpp ...
arraydriver.cpp ... with
output
Same int array class with pre/post condition comments:
array.h ...
array.cpp
Array class as a template (must put all code into the .h file):
   
arraytemplate.h includes
class def and implementation ...
arraytemplatedriver.cpp ... with
output
List class:
List class (singly linked list):
list.h ...
list.cpp ...
listdriver.cpp ...
listdata.txt ...
listdata2.txt
List class as a template:
listtemplate.h ...
listtemplatedriver.cpp
Nodedata class:
nodedata.h ...
nodedata.cpp
Employee class:
employee.h ...
employee.cpp
Stack ADT:
stack.h  
               
Array implementation:  
stacka.cpp  
Linked List implementation:  
stackl.cpp  
Queue ADT:  
queue.h
Array implementation:  
queuea.cpp  
Linked List implementation:  
queuel.cpp  
Using a static const data member:
staticconst.cpp
Binary Search Tree:  
binary search tree  
Tree recursion:  
Binary tree problem solving (recursion)  
Sample Manager class:  
for bridge game  
Inheritance example:
Simple example using inheritance ... consists of a base class
(Fruit) and
three derived classes (Apple, Orange, Grape).  
There is a linked list of Fruits.
The items start out as specific Apples, Oranges, or Grapes,
then become Fruits in the list.
Inheritance allows the objects to define their own functionality.
All the code:
fruit.cpp ... with output:
output ... and
UML diagram