Programming Concepts with C++
Content
C++ Overview (1 week) -Textbook (Lippmann): Chapters 1.1-1.6, 2.1-2.2, 4.2-4.10, 5.1-5.5 -On-line resources, textbooks -Java, C and C++ -Basic structure of a C/C++ program -Fundamental data types -Automatic type derivation and conversions -Operators -Control and decision statements -Standard input/output
- Data and Memory Management in C/C++ (1 week) -Textbook (Lippmann): Chapters 2.5, 3.2, 3.3, 3.5.1-3.5.4, 4.11.3, 6.1.1, 6.2-6.4, 7.2, 12, 19.3, 19.6 -Complex data types: arrays, (scoped) enumerations, strings, structures and unions -Scope, modifiers, type conversions -Pointers and memory allocation: static, automatic and dynamic -Allocation and de-allocation, C++ vs. C -Pass by value, by reference, by pointer -Basic use of std::array and std::vector
- Object-Oriented C++ (2 weeks) -Textbook (Lippman): Chapters 2.2, 2.6, 6.4, 7.1-7.5, 12.4.2, 13.1.1-3, 15.1-15.5, 15.7, 18.1, 19.2.1 -Class design: Encapsulation, inheritance and polymorphism -Classes, attributes and methods -Method overloading, default parameters -Construction and constructor types, destruction and pointer attributes -Class relationships: association, aggregation, generalization and inheritance -Polymorphism: Virtual functions, abstract classes and dynamic cast -Exceptions
- Macros and Templates (1 week) -Textbook (Lippman): Chapters 2.9.2, 6.1.4, 16.1-16.3, 16.5 -Macros and the C++ Preprocessor: debugging, conditional compilation -Templates: template functions and classes -Templates: type and non-type parameters -Template specialization
- Streams (1 week) -Textbook (Lippman): Chapters 8.1-8.3, 14.2 -Relevant classes -File handling -Overloading the insertion and extraction operators -String streams
- Standard Template Library (2 weeks) -Textbook (Lippman): Chapters 3.4, 9.1-9.6, 10.1-10.2, 11.1-11.4 -Sequential STL containers and container adapters -STL iterators -Associative STL containers -Generic algorithms
- Abstract Data Types (2 weeks) -Textbook (Lippman): Chapters 6.5.2, 7.2.1, 7.6, 13.2, 14.1-14.4, 14.7, 14.9 -Operator overloading -Copy constructor and assignment operator -Numerical Vector and Matrix Classes in C++ -Various: friend operator on classes and functions, inline functions, static members
- Advanced Concepts (2 weeks) -Textbook (Lippman): Chapters 6.7 10.3, 12.1, 13.6.1-2 -Passing a function: function pointers, functors -Lambdas -Smart pointers -Move constructor and move assignments -Multiple inheritance -Virtual inheritance and abstract classes -Exception handling