This lecture presents code examples of hierarchical relationships in the C++ language. We emphasize
understanding the semantics and processing model for these relationships.
Syllabus
Describes topics to be covered,
reading material for you to digest before coming to class, and due dates
for the assigned projects.
Resources for Project #2: - Source code publisher for projects Project #2 statement,
Project2HelpS2019
OODProject2Helper adds show/hide capability to the demo output.
I've put an updated version of the Parser in the
Project2HelpS2019 folder.
It fixes a bug I spotted in the AST display. I've wanted to update the tokenizer
to a State-Based model, like we used in CSE681 - Software Modeling and Analysis, Fall 2018.
That turned out to be a bit more work than I expected, but the results seem solid, and
I recommend its use for Project #2.
You will find the Parser Blog helpful for
Project #2.
C++ Survival Guide,
doc Visual Studio help notes,
Code Analyzer Project Submissions
If you go to other folders in the college server you are very likely to download out-of-date code,
usually correct, but won't compile with demonstration code that uses newer features.
Policy for due date extensions - only for certified illness and work or interview trips out of town: one week extension, with proof.
Only one extension per project.
Design for flexibility - templates and inheritance
Hierarchy Presentation
Hierarchy is concerned with the relationships between classes - aggregation, composition, inheritance,
and using.
Three Tier Hierarchy - a common idiom
Demonstrate Composition
This project contains a number of demonstrations of basic composition relationships.
Demonstrate Inheritance
Contains demonstration of things to be careful with when using inheritance.
Compound Object creation
You need to understand how constructor initialization is required to control the objects you create.