CSE687 - Object Oriented Design

Lecture #6 - Templates

Revised: 03 February 2008
Home Courses Code Handouts CoreTech Books Articles Math Research Masters Projects SWDev WebDev News OtherLinks SiteDesign Graduates AllPages Office Hours Notices Contents

CSE681-SWMAA CSE686-IP CSE687-OOD CSE775-DO CSE776-DP CSE778-AWP CSE784-SWS

Lecture #01 Lecture #02 Lecture #03 Lecture #04 Lecture #05 Lecture #06 Lecture #07
Lecture #08 Lecture #09 Lecture #10 Lecture #11 Lecture #12 Lecture #13 Lecture #14
Lecture #15 Lecture #16 Lecture #17 Lecture #18 Lecture #19 Lecture #20 Lecture #21
Lecture #22 Lecture #23 Lecture #24 Lecture #25 Lecture #26 Lecture #27 Lecture #28

Contents Syllabus SG - Design SG - Templates SG - Class Relationships

Web Resources:

Stroustrup's Home Page, Assoc. of C/C++ Users, C++ at Microsoft, Code Project, Sells Brothers, Guru of the Week, C/C++ User's Journal, devCentral, Dr. Dobb's Journal, Boost Library, techNetCast

Office Hours: Instructor & TAs

Content:

This lecture covers template functions and template classes. We will discuss a HashTable example.
  1. Syllabus
    Describes topics to be covered, reading material for you to digest before coming to class, and due dates for the assigned projects.
  2. Uploading Project Submissions
  3. Project #1
    Profiling.
  4. Project #2
    This project introduces you to graphs and graph algorithms.
  5. Templates Presentation
    Templates are one of the terrific features of the C++ language. They are the basis of the Standard Template Library (STL) and are useful in day-to-day programming.
  6. Template Code Examples
    Basic and some more advanced template examples.
  7. STL Template-based Container Examples
    Illustrates use of vectors, lists, sets, and maps.
  8. Functor examples
  9. HashTable Project
    HashTables are fundamental and very useful data structures. At this time there are no hash-based containers in the STL. So here is my implementation - it's a good example of the use of templates.
  10. Design of Hash Table and Iterators
  11. Template Policies and Traits
  12. Design Strategies
    Discusses styles of design and binding.
  13. Design Rules
    Design rules and idioms that transcend Object Oriented Design.
  14. Lecture #5 folder
    Contains a page of links to presentations and code discussed in this class. The Lecture folders will occasionally hold physical files of interest as well. Usually, however, all the materials of interest to the class are in the presentations and code folders. The contents of these folders will grow as you progress through the course.