CSE687 - Object Oriented Design

Lecture #9 - Hierarchy Examples

Revised: 27 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 presents code examples of hierarchical relationships in the C++ language. We emphasize understanding the semantics and processing model for these relationships.
  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. Project Uploads: You are required to use your own ecs account to upload projects - no exceptions.
  3. Project #2
    Graph class, Graph Algorithms
  4. Project #2 Help
    This prototype is a good foundation for your second submission. It shows one way to represent a graph data structure and how to orchestrate it's required template parameters.
  5. Hierarchy Presentation
    Hierarchy is concerned with the relationships between classes - aggregation, composition, inheritance, and using.
  6. Demonstrate Composition
    This project contains a number of demonstrations of basic composition relationships.
  7. Demonstrate Inheritance
    Contains demonstration of things to be careful with when using inheritance.
  8. Virtual Function Pointer Table structure
  9. Vectors of Polymorphic Objects - Example Project
    Shows how to use heterogeneous objects in an STL container.
  10. Liskov Substitution Principle
  11. Design Rules
    Design rules and idioms that transcend Object Oriented Design.
  12. Lecture #9 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.