Intensive C++
In this course, experienced programmers will get a comprehensive, in-depth view of the C++ language. Included is complete coverage from fundamental concepts of class, inheritance, virtual functions.
In addition to syntax, this course integrates the pragmatic and the theoretical with discussions of object-oriented principles, beneficial design criteria, efficiency tradeoffs, common design patterns, and other useful idioms and programming techniques.
Ämnesområden
Day 1
- Basics
Introduce program start, variable types, flow of control, and i/o. - Functions
Learn functions, parameter passing, references, arrays, global and static variables, defaults, and inline. - Types
Cover constants, enumerations, typedef, switch, c and c++ strings, using directives, structs, reference variables, constant references, overloading, and template functions. - Member Functions
Examine member functions, definition and invocation syntax, and const issues. - Inheritance
Discuss inheritance, data and functions, its design meaning, overriding, and chaining.
Day 2
- Constructors
Examine constructors and destructors, multiple and default constructors, array construction, and unnamed temporaries. - Protection
Introduce public, private and protected access specification, friends, and class. - Virtual
Consider virtual functions, type compatibility, and dynamic binding. - Templates
Cover template classes, syntax, instantiation, and parameters.
Day 3
- Pointers
Examine pointer types and syntax, indexing and relation to arrays, arithmetic, pointers to object, and use in connected data structures. - Dynamic Memory
Learn dynamic memory, allocation and deallocation, syntax and purpose, arrays, and memory leaks. - Standard Smart Pointer
Introduce the standard smart pointers std::unique_ptr and std::shared_ptr - Operator
Cover operator overloading and various operators. - Dynamic Memory 2
Discuss use of dynamic memory by classes, and copy and assignment issues.
Day 4
- Exceptions
Introduce exceptions, various syntax and use, and interaction with destructors. - Constructors 2
Introduce construction of aggregate and derived objects, initialization syntax, and automatic constructor generation. - Scope
Examine name collision issues, nested types, static members, and namespaces. - Virtual 2
Cover implementation of dynamic binding, use in writing generic code, abstract operations, pure virtual functions, and virtual destructors. - Inheritance 2
Discuss multiple and private inheritance. - Type Conversion
Examine casting, cast operators, dynamic cast, rtti, and explicit.
Day 5
- Functions 2
Learn function objects, overloading operator function call, pointers to global functions and member functions, and callback-based notification. - Lambda Expressions
Introduce lambda expressions and closures - Std Containers
Discuss fundamentals of standard library containers, use, iterators, algorithms, function parameters, nested typedefs, and generic code. - Preprocessor
Consider preprocessor directives, code selection and generation, and macro parameters. - Compilation
Cover issue in separate compilation, code organization, dependencies, and guards.
Kursens mål
- Classes, member functions, and protection
- Inheritance, single, and multiple
- Constructors and destructors
- Overloading, dynamic binding, and virtual functions
- Polymorphism and generic programming
- Template functions and classes
- Exceptions and error handling
- Operator overloading
- Dynamic memory, copy/assignment, and memory management
- Type conversion and run-time type information (RTTI)
- Namespaces and project organization
- Efficiency issues, code generation, and inlining
- Function objects, pointers, and callbacks
- Standard library io-streams, strings, and containers
- Effective programming idioms and techniques
- Object-oriented programming, patterns, and design
Målgrupp
Experienced programmers who want to learn as much as possible about C++.
Förkunskaper
Practical experience from an object-oriented language such as Java or C#. No experience of C++ is required.