|
|
CSC428 Advanced object-oriented idioms in C++ |
Course outline:
This subject gives students an overview of some of the less obvious, but more
powerful, idioms (programming techniques)
that the C++ programming language supports. It is very practially oriented,
with three assignments constituting the entire
assessment, and assumes competence with basic C++, including multiple
inheritance and templates. Topics:
implementing an array class, proxies, redirecting the standard I/O streams, map
interfaces, self linking lists, reinstating
EFdden base class functions, hiding implementation details, registries,
template constraints, reference counting, wrappers,
preventing inheritance, envelopes and letters, mimicking "illegal" types in
unions, preventing implicit conversions of inbuilt
types, double dispatch, fixing variable scopes in old-style "for" loops,
allocation tracking, dynamic scopes, named loops,
properties, interprocess objects, read only members, fallible types, receptors,
"semi-virtual" inheritance, persistent objects,
promptors, functors, restricting access to functions, dataflow programming,
lazy evaluation, altering default parameter
values.
Lectures:
Tuesdays 2.00 - 4.00pm (S15)
Assessment:
Assignment 1 (50%): Due 12 noon, Friday April 14 (Week 7)
Assignment 2 (50%): Due 12 noon, Friday May 26 (Week 12)
Electronic submission (via submit)