- developing secure and efficient C++ programs
|
- C programming
(or similar skills)
|
- list and explain the main abstraction mechanisms
- explain the components and use of the standard STL library
- explain the need for user-defined checks (asserts)
- use predefined class templates
- use simple textual IO
- list and explain the problems of manual memory management
|
- explain features: explicit, friend, virtual, const, zero-argument constructor, copy constructor
- use input/output and string libraries
- use vectors, lists, and maps
- explain smart pointers
- explain the problems with the typing system and run-time error handling
- use protection and check facilities to improve the reliability of programs
- use const when defining data and functions
- explain problems of initialization and to solve them
- manage the life-time of dynamic objects (create and destruct)
- explain general resource handling and the related problems and shortcomings of the language
- create abstractions to solve the problems of resource handling
- explain the need of stardardized copy and release operations for value types
- implement the standard copy/release operations
- utilize pre- and post-conditions and class invariants
- explain and implement exception safety
- explain the need of virtual functions (why, when, and how)
- explain self-assignment check
|
- design and implement simple class and function templates
- explain implementation strategies for dynamic and static function dispatch
- describe the efficiency and reliability properties of the standard library
- describe the run-time implementation structure of classes and objects
- explain vtable
- prevent coping of values of a class
- prevent local variable declarations of certain class types
- prevent dynamic allocation objects of certain classes
- explain slicing problem
- implement efficient low-level system components or run-time support libraries (e.g., virtual machines)
|