Be able to define information hiding, and to explain how it
helps create better software designs.
Be able to define data abstraction and abstract data
type.
Know the definitions of class, object, data member, member
function, method, message, private member, public member,
constructor, destructor, header file, specification file,
implementation file, and any other C++ class terminology.
Understand the connection between C++ classes and abstract data
types.
Know how to program a class and how to use a class as a client.
Chapter Four -- Linked Lists
Know the terminology, concepts, and programming syntax
connected with pointer-based lists: pointers, dynamic
allocation of memory, using new, using delete,
referencing pointers (ptr->Item.serialNum), sequential search,
traversal, and so forth.
Know how to write program code that allocates, uses, and
deallocates dynamic arrays. Understand how the name of an
array equates to a pointer to the base element of the array.
Understand the equivalence of array indices to pointers.
Understand how to declare the C++ data types that are necessary
for setting up a linked list -- for example:
struct node ;
typedef node * ptrType ;
struct node
{
int Item ;
ptrType Next ;
} ;
Be able to explain how nodes containing items are linked
together to form linked lists.
Understand how an element is located in a linked list by doing a
sequential search. Understand the use of prev and cur pointers
in such a search.
Know how elements are inserted into a linked list and how they
are deleted from a linked list.
Understand the need for a special copy constructor and a
special destructor when programming a linked list class that
uses dynamic memory allocation.
Know the relative advantages and disadvantages of array-based
lists versus pointer-based lists.