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.