CSE687 - Object Oriented Design
Lecture #4 - Abstract Data Types
Revised: 26 January 2008
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
Content:
This lecture discusses the notion of an Abstract Data Type. We demonstrate how to use the C++ language
to implement an ADT.
-
Syllabus
Describes topics to be covered,
reading material for you to digest before coming to class, and due dates
for the assigned projects.
-
The book C++ Primer Plus, by Stephen Prata, is now in the Sci-Tech library, on reserve, for your use. You will find this
text very readable, with tons of small code fragments that show you how to do almost any basic operation you may need to do.
You can not take this book home, but may use it in the library for several hours.
-
Code Page
This link takes you to a web-page index into code resources.
-
Project #1
This project introduces you to C++ scopes, modules, encapsulation, and code analysis applications.
-
Project #2
This project introduces you to graphs and XML processing.
-
Build Tools,
startup.bat,
VS Help
-
Equivalent Syntaxes
Shows how to call constructors in a variety of contexts.
-
object layout
Fundamental information about how objects work.
-
Abstract Data Types Presentation
What does it take to make objects of your class behave like built in types?
-
STR class
This is a good example of an ADT. It is presented as a nice example. You should prefer the
std::string class for all your development work.
-
C++ Operators
-
vector3D
An example of an Abstract Data Type that is rich in operators. Shows the accepted style for
building ADT classes with mathematical operations.
-
Modules
A module is a physical package of code in files. In this course, by module, we mean
those source code files that constitute a compilable entity. The result of compilation
may be an execution image (exe), a dynamic link library (dll), or an object file (obj).
-
Notation
When discussing object oriented designs, we will often use a subset of the Universal
Modeling Language (UML), described briefly in these notes. You also may wish to
consult UML Tutorial