The un-examined life is not worth living ... Socrates
How to prepare for Frank's midterm?
Really understand class/object definitions (.h)
It may take experience to do proper object design. But, if you're already given a design boundary (e.g. stock versus portfolio, or student versus roster), you should know the relationship between them as well as their respective functions, especially operator overloading.
The definition of a class is solely depends on the perceived usages and its own structure. Constructors and assignment operators deserves special attention if the object has dynamic storage involved.
When defining a member function, be mindful to the parameters and return code. Call by value, reference, pointers...
Operator overloading
Keep in mind that we want the objects we designed to act like int. Streaming objects >>, << are essential to read/write object databases to/from files. Comparison operators ==, < , > are essential to do searching and/or sorting.
Implementation (.cpp)
Linked list and array... Know how these two data structure works: insertion, find, deletion. Pay special attention to the boundary conditions. If you can handle labs without copying code, it will be a good gauge.
Pointers in linked list is essential. Not only you need to understand how pointers are used in linked list, but also how it works in function calls.
Also, the definition (or representation) of linked list matters: with or without size, with or without tail, forward list or doubly-linked or circular. It definitely changes the implementation algorithms.
To net it out, what does Frank recommend?
Read the book: quick review and exercises at the end of each chapter.
Go through the notes section.
Check out previous midterm samples posted on the site.
Review the labs.