* Fri, Aug 18 (1:10 - 3:00).
* Covers everything you learned this quarter, and probably plus a simple (1-point) question from each of the following lectures
1. Mike VanHilst's "Advanced C++ Features"
2. Martin Tompa's "Secret Codes"
Office Hour Changes This Week
* Extended office hour today from 2:20 to 4:30pm.
* No office hour on Friday.
* Possible office hours Saturday (for regrade etc.) I will announce by e-mails.
Protected members
* A protected member can be accessed by its derived classes but not by its clients.
class Base {
public:
void public_fun();
protected:
void protected_fun();
private:
void private_fun();
};
class Derived : public Base {
public:
void derived_fun();
};
void Derived::fun()
{
public_fun(); // okay?
protected_fun(); // okay?
private_fun(); // okay?
}
int main()
{
Base *p = new Derived;
p->public_fun(); // okay?
p->protected_fun(); // okay?
p->private_fun(); // okay?
p->derived_fun(); // okay?
}
* Similarly, you can use "protected" for data members too.
What do we have this quarter?
* An excellent class of students.
1. Asked a lot of key questions in lectures.
2. Caught mistakes in lecture notes / exam solutions.
3. Helped each other in the labs as well as using the mailing lists.
* An excellent lecture room with two nice projectors.
* An excellent meeting time (when you want to sleep during a lecture while digesting your lunch).
* An excellent weather to stay indoors to write code.
Course Summary
* From C to C++
* Program that has multiple files
* Modularization
* (Project #1)
* Specification and implementation
* C++ Classes (privates, publics and friends)
* (Project #2)
* Common data structures
* Array implementation of an ordered list
* (Project #3)
* Pointers and dynamic data
* Constructors, copy constructors and destructors
* Implementation of a linked list
* (Project #4)
* Examples of implementation of other data structures
* Recursive functions
* Designing a medium size program
* Introduction to object-oriented design
* (Project #5)
* Run-time complexity (big-O notation)
* Trees
* (Project #6)
* Inheritance & Polymorphism
* Advanced C++ topics
* Computer science is not just programming (e.g. secret codes)
GOOD LUCK!