Difference between revisions of "COMP345 Fall 2020 Midterm coverage"
From Dr. Joey Paquet Web Site
(3 intermediate revisions by one user not shown) | |||
Line 1: | Line 1: | ||
− | *The following is the list of topics that are included in the midterm examination. | + | * Notes: |
− | *In general, you are responsible for all the material presented in slide set 0 to | + | **The following is the list of topics that are included in the midterm examination. |
− | *Some specific topics will not be part of the examination. These are denoted with an "X" below. | + | **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 | *Slide Set 0 | ||
Line 28: | Line 29: | ||
***arithmetics | ***arithmetics | ||
**references | **references | ||
− | **smart pointers | + | **smart pointers (X) |
**parameter passing | **parameter passing | ||
**strings | **strings | ||
Line 69: | Line 70: | ||
***memory allocation model | ***memory allocation model | ||
***passing as parameters | ***passing as parameters | ||
− | **dynamically allocated arrays (one-dimensional | + | **dynamically allocated arrays (one-dimensional) |
***declaration, usage | ***declaration, usage | ||
***memory allocation model | ***memory allocation model | ||
***passing as parameters | ***passing as parameters | ||
− | **array decay into a pointer | + | **array decay into a pointer |
**static array classes | **static array classes | ||
− | **STL containers | + | **STL containers |
− | ***declaration, usage | + | ***declaration, usage |
− | ***iterators ( | + | ***iterators |
+ | |||
+ | *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 |
Latest revision as of 12:24, 26 October 2021
- 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)
- 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