Final Review Information

The Final is 1-2:50 PM on Wednesday (12/15) in Wright 105. It will be OPEN book and notes.

Chapter 8: C Characters and Strings

Topics:

Character representation as integer ASCII values

Character handling library: isdigit, isalpha, etc. (pp. 320-321)

Representation of C strings as null ('\0') terminated character arrays.

printf (%s) I/O of strings

String conversion functions: atof, atoi, atol, strtod, strtol, strtoul (p. 326)

Standard Input/Output library functions: getchar, gets, putchar, puts, sprintf, sscanf (pp. 330-1)

String Manipulation functions: strcpy, strncpy, strcat, strncat (p. 335)

String Comparison functions: strcmp, strncmp (p. 338)

String Search functions: strchr, strcspn, strspn, strpbrk, strstr, strtok (p. 340)

Memory functions: memcpy, memmove, memcmp, memchr, memset (p. 346)

Skills:

Be able to use predefined functions from the string library to read, write, and manipulate C characters and strings.

Chapter 10: C Structures (Sections 10.1 - 10.7)

Topics:

Defining structures, accessing individual structure members using the '.' and '->' notation

Initializing structures

Using structures with functions

typedef

Skills:

Be able to declare and use structures in a program that pass structures to functions

Chapter 15: C++ as a Better C

Topics:

General idea of object-based programming with classes.

(We talked about pass-by-reference here I think)

C++ Standard Library and C++ header files

Inline functions

Default arguments and empty parameter lists

Unary Scope resolution operator ("::")

Function Overloading

Function Templates

Skills:

Be able to trace programs that using pass-by-reference parameter passing.

Be able to write programs that use unary scope resolution operators when implementing a new class.

Chapter 16: C++ Classes and Data Abstraction

Topics:

Understand the software engineering concepts of encapsulation, data hiding, and abstract data types (ADTs)

Class scope and accessing class members (using '.', '->', or "this->")

Separating interface (.h) from implementation (.cpp)

Controlling access to members using public, protected, and private specifiers

Access functions and utility functions

Class constructors and destructors

Assignment by default memberwise copy

Skills:

Be able to trace programs that use classes.

Be able to write programs that create and utilize user-defined classes, including the class definition (.h), the class implementation (.cpp), and a program (e.g., tester.cpp) that uses the class(es).

Chapter 17: C++ Classes: Part II

Topics:

The use of "const" objects and member functions

Composition - objects as data members of a class

"friend" functions and classes

Using the "this" pointer

Dynamic memory allocation with "new" operator and deallocation with the "delete" operator

"static" class members to maintain a value across all objects in the class

Skills:

Knowing when use the "const" keyword for constant objects and member function.

Knowing when to make a function or class a "friend"

Chapter 18: C++ Operator overloading

Topics:

Understand the general concept of operator overloading.

Operator functions as class members vs. as friend functions

Overloading of the stream-insertion (<<) and the stream-extraction (>>) operators - the need to make them friend functions since the left-handside operand is either an istream or ostream object and NOT of the class being defined

Overloading of unary (e.g. ++) and binary operators (e.g., =, +, <, ==, etc.)

Skills:

Be able to overload unary and binary operators to work with new class types

Be able to overload the stream-insertion (<<) and the stream-extraction (>>) operators as friend functions to work with a new class.

Chapter 19: C++ Inheritance

Topics:

Understand the general concept of C++ inheritance

Skills:

Since we didn't do any code examples, you only need to know the general concept of inheritance.