CSE687 - Object Oriented Design

Lecture #14 - iostreams and Exceptions

Revised: 01 March 2009
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:

No classes next week - Spring Break!

This lecture covers iostreams, an object oriented implementation of a library supporting program input and output.
  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 #2, Graph data type
    Project #3, Testbed
    Project #4, Remote Testbed with charting
  3. Executable Specifications
  4. Interface Segregation Principle
    Discusses why you may need to provide more than one interface for a component.
  5. Enforcements
  6. iostreams presentation
    The presentation discusses the iostream hierarchy and the role of each of many of its classes.
  7. iostreams reference
    The reference presents class relationships and interface details.
  8. iostreams code examples
    Illustrates stream formatting, buffering, opening for reading and writing, and use of stringstreams.
  9. Stream Iterators
    A short example demonstrating input and output stream iterators.
  10. What's going to be on the Midterm Exam?
    1. Classes: composition, inheritance, initialization, temporaries, copy and assignment operations, default operations.
    2. Templates: function and class templates, specialization, template policies and traits.
    3. Principles: LSP, OCP, DIP, ISP
    4. Programming to Interfaces, Object Factories.
    5. Streams: iostream, fstream, sstream
    6. Namespaces, RTTI
    7. Exceptions
  11. Design Presentation
    Summarizes design issues for modules and classes.
  12. Design Rules
    Design rules and idioms that transcend Object Oriented Design.