This is a 6-part video series entitled C++ Models by Dr. James Fawcett. Each video describes different conceptual models underlying the C++ programming language. Discussion with exemplars is used to illustrate how the models apply to aspects of the language for effective use. In this series, eight fundamental models are covered: Code Structure, Compilation, Program Execution, Use of Memory, Classes, Object Model, and Templates.
Part 1 of this 6-part video series discusses techniques for structuring code to support an effective code management strategy (specifically with regard to readability and maintenance) as software systems become large and difficult to understand. The use of packages with object factories and interfaces is discussed with an example.
Compilation and Execution – C++ Models
This is a 6-part video series entitled C++ Models by Dr. James Fawcett. Each video describes different conceptual models underlying the C++ programming language. Discussion with exemplars is used to illustrate how the models apply to aspects of the language for effective use. In this series, eight fundamental models are covered: Code Structure, Compilation, Program Execution, Use of Memory, Classes, Object Model, and Templates.
Part 2 of this 6-part video series discusses the compilation process model, the preprocessor, and operations of the compile-link-load tool chain. The Execution model is described with a focus on function stack frames, memory, and use of streams.
https://www.youtube.com/embed/3qlQbvxaAmQ?feature=oembed
Memory and Class Models – C++ Models
This is a 6-part video series entitled C++ Models by Dr. James Fawcett. Each video describes different conceptual models underlying the C++ programming language. Discussion with exemplars is used to illustrate how the models apply to aspects of the language for effective use. In this series, eight fundamental models are covered: Code Structure, Compilation, Program Execution, Use of Memory, Classes, Object Model, and Templates.
Part 3 of this 6-part video series discusses the memory model paradigm, and foundational concepts behind the usage of memory: static, stack, and heap. The Class Model is described using illustrations of the relationships between code residing in static memory, and instances of objects in stack memory.
https://www.youtube.com/embed/SX2_oOLWNLI?feature=oembed
C++ Object Model – C++ Models
This is a 6-part video series entitled C++ Models by Dr. James Fawcett. Each video describes different conceptual models underlying the C++ programming language. Discussion with exemplars is used to illustrate how the models apply to aspects of the language for effective use. In this series, eight fundamental models are covered: Code Structure, Compilation, Program Execution, Use of Memory, Classes, Object Model, and Templates.
Part 4 of this 6-part video series provides a conceptual overview of the C++ object model with description and exemplars that illustrate the layout of code in memory, and how the layout of memory affects object construction.
https://www.youtube.com/embed/hJlSy6t8vHI?feature=oembed
C++ Polymorphism – C++ Models
This is a 6-part video series entitled C++ Models by Dr. James Fawcett. Each video describes different conceptual models underlying the C++ programming language. Discussion with exemplars is used to illustrate how the models apply to aspects of the language for effective use. In this series, eight fundamental models are covered: Code Structure, Compilation, Program Execution, Use of Memory, Classes, Object Model, and Templates.
Part 5 of this 6-part video series discusses methods for building code with the flexibility to support change. Public inheritance coupled with pointers and references, support type substitution and provides one method to enable code to change without breaking existing package dependencies. The virtual function dispatching model is described with an exemplar.
https://www.youtube.com/embed/w9ANGEZZ87Y?feature=oembed
C++ Templates and Conclusions – C++ Models
This is a 6-part video series entitled C++ Models by Dr. James Fawcett. Each video describes different conceptual models underlying the C++ programming language. Discussion with exemplars is used to illustrate how the models apply to aspects of the language for effective use. In this series, eight fundamental models are covered: Code Structure, Compilation, Program Execution, Use of Memory, Classes, Object Model, and Templates.
Part 6 of this 6-part video series describes templates with a focus on the code generation model. Template function overloading and template class specialization are discussed. The conclusions section provides information on where to find the models presentation and the example code.
https://www.youtube.com/embed/Xfw8CzGLsUM?feature=oembed