Understand the organization of multi-source file C++ code.
Describe which code should go in .h and .cpp
files.
Describe the difference between declarations and definitions.
Demonstrate proper use of the #include and
#ifndef compiler directives.
Describe the difference between the composition and inheritance
mechanisms.
Describe the following inheritance issues:
Base class
Derived class
Early versus late binding
Upcasting
Slicing
Overriding
The keyword virtual
Pure virtual
Abstract base class
Interpret and write simple C++ code using inheritance.
Describe the differences between private, protected, and
public access specifications.
Describe what a friend is.
Define the term polymorphism and be able to describe the C++
language mechanisms which implement it.
Interpret and write simple C++ code for functions and classes which
use templates.
Interpret and write simple container classes (e.g. vector and list)
using templates.
Interpret and write code which use and implements iterators.
Including the syntax for overriding operator++ and
operator--.
Describe the C++ namespace mechanism and know how to build
namespaces.
Describe the purpose and use of the C++ exception handling
mechanism.
Interpret and write simple code using the C++ exception handling
syntax involving throw, try, and catch.
Describe and apply common STL algorithms such as find,
sort, etc.
Interpret and draw simple UML diagrams and the syntax they use.
Use simple strategies like use cases and classification to determine
appropriate classes, methods, and attributes as part of the design of a
software solution to a problem.
Dr. Taylor has provided a number
of useful examples on his course web page.
Understanding the examples you find there would be one good way to study
for this exam.