COMP345 midterm coverage - fall 2021
From Dr. Joey Paquet Web Site
- Notes:
- The following is the list of topics that are included in the midterm examination.
- In general, you are responsible for all the material presented in slide set 0 to 7, along with the lab examples pertaining to them (i.e. lab 1 to lab 7)
- Some specific topics will not be part of the examination. These are denoted with an "X" below.
- Slide Set 0
- none
- Slide Set 1:
- program structure
- compilation unit
- header/cpp files
- includes
- redundant includes
- namespaces
- Slide Set 2:
- structs and classes as data types
- variable initialization
- implicit/explicit type coercion
- static_cast, dynamic_cast
- upcasting/downcasting
- conversion sequences
- pointers
- pointer artithmetic
- pointers and const
- void/wild/dangling/null pointers
- stack/heap/new/delete
- arithmetics
- references
- smart pointers (X)
- parameter passing
- strings
- Slide Set 3:
- input/output streams
- cin/cout
- files stream declarations, open/close, usage
- << and >> operator overloading
- MFC serialization (X)
- Slide Set 4:
- classes vs. structs
- struct usage
- class declarations (.h and .cpp files)
- declaring/using objects
- with or without pointers
- inline functions/methods
- const specifier
- static specifier
- friends
- constructors/destructors
- declaration/implementation
- initialization list
- implicit/explicit constructor calls
- call chain
- inheritance
- overriding/overloading
- vs. constructor/destructor implementation
- assignment operator
- copy constructor
- shallow/deep copy
- multiple inheritance
- virtual inheritance
- diamond problem
- Slide Set 5:
- statically allocated arrays (one or multidimensional)
- declaration, usage
- memory allocation model
- passing as parameters
- dynamically allocated arrays (one-dimensional) (multidimensional - X)
- declaration, usage
- memory allocation model
- passing as parameters
- array decay into a pointer
- static array classes
- STL containers
- declaration, usage
- iterators
- statically allocated arrays (one or multidimensional)
- Slide Set 6: MVC and observer
- MVC design (roles of Model, View Controller components)
- Role of Observer pattern
- MVC example in lab
- Slide Set 7: polymorphism
- Polymorphism: concept vs Object-oriented programming and its implementation in C++
- Virtual methods
- Pure virtual methods
- Abstract classes
- Virtual destructors
- vs. Java interfaces
- Value semantics and object slicing
- Reference semantics and polymorphism
- Function pointers
- Virtual function tables