CS12 Topic list for second midterm Book: 3.12--3.14 5.7--5.9, 5.12 9.1--9.12 10.1--10.5, 10.8 12.1--12.6 20.1 Recursion - writing recursive functions - two conditions: - terminating condition (base case) - progress towards base case (problem gets smaller) - determining the output of a recursive function Pointers & strings what are they (arrays of characters) special character '\0' (terminates all strings) allocating space (word length + 1) string manipulation using pointers string.h functions (no need to memorize, know they exist) Pointers and classes the "this" pointer (used in methods only, refers to the invoking object) pointers to objects accessing object members and functions by dereferencing (*p).x or p->x copying objects containing dynamic data where problems can occur overloading the = operator for copying dynamically allocated memory. Inheritance - base classes - derived classes - declaring a derived object (base class constructor called first) - invoking methods with derived object (derived methods used first) - public, private and protected data/methods - public, private and protected inheritance - invoking base class constructor in derived object constructor (in constructor initializer) - base class object pointers pointing to derived objects - polymorphism - virtual functions - virtual destructors - pure virtual functions - abstract base classes Templates - Template functions - writing - calling - Template classes - writing - using - container classes - Standard Template Library (know it exists).