Вы находитесь на странице: 1из 3

Course Title: Advanced C++ Programming

Course Overview: Intermediate to Advanced course for developers with good basic knowledge in OO programming and C++ Course Objectives: Teach the learners how to use C++ effectively, for example, how to create libraries and programs that are correct, efficient, portable, maintainable, and extensible. Teach best practices of expert C++ programmers for design and implementation of software systems. Provide an understanding of the proper application of C++'s features, including member and nonmember functions, templates, inheritance, virtual and non-virtual functions, namespaces, etc. Share Insights into how to effectively combine language features to achieve desired results. Target Audience: Programmers with 2 years or more experience in writing C++ programs Pre-Requisites: Working knowledge of OO Programming and basic C++ language Length Of Course: 5 days Course Format: Percentage % of lecture / lab in the class: 80/20 Instructor-led onsite COURSE OUTLINE: Day 1 1. Namespaces Modularity and interfaces. Avoiding name clashes. Namespace selection and composition. Program structure. 2. Generic Programming Templates, template parameters and type checking. Function templates, deduction and explicit instantiation. Class templates, derivation, and member templates. Partial and complete specializations. Preventing code bloat. Templates, overloading and namespaces. Policy parametrization. Day 2 3. The standard C++ library (STL) Library design alternatives. Standard containers and sequences. Container adapters. Associative containers. Container-like classes. 4. Iterators, algorithms and function objects Iterators and compile-time polymorphism. Polymorphic algorithms. Iterator categories. Iterator adapters. Function objects and predicates.

Standard algorithms. Binders and negators. Free function and member function adapters. Inserters and extractors. The standard allocator. User-defined allocators. Day 3 5. Multiple inheritance Classes, types, sets and intersections. The technicalities of multiple base classes. Combining behavior smooth integration of separate hierarchies. Resolving name clashes overriding / interface classes. Combining state virtual base classes. The inheritance canonical form. 6. Implementation inheritance Private and protected inheritance. Implementation inheritance vs. containment. The IS-LIKE-A relationship. Private inheritance of virtual functions hierarchy re-use. Day 4 7. Runtime type information The cast operators. Dynamic down-casts and cross-casts. Dynamic cast of pointers and references. Extended type information and typeid. Use and abuse of RTTI. Polymorphic object I/O and exemplars. 8. Error Handling Error-handling alternatives. Exceptions. Resource management, constructors and destructors, auto_ptr. Exception specifications, unexpected and uncaught exceptions. Exceptions and efficiency. Standard exceptions. Day 5 9. The C++ object model Virtual functions and v-tables. Construction, destruction, copy and assignment. Object and v-table layout. Inheritance and object lay out. Multiple inheritance Runtime semantics. Temporary objects and efficiency. 10. Design C++ as a multi-paradigm language. Programming to interfaces. Encapsulating change.

Dynamic composition vs. Inheritance/containment . Introduction to design patterns.

Pre-work: Working knowledge of OO Programming and basic C++ language. Minimum / Maximum Learners per course: 10 to 25 participants
Arun R Koundinya KnowledgeWorks IT Consulting Pvt. Ltd., # 197 E-5, II Floor, 8th 'B' Main, 27th Cross, Jayanagar, 3rd Block, Bangalore - 560 011 Phone: 91-80-26630622, 22459941, 41533451 Cell: 9845018090 URL: www.knowledgeworksindia.com E-mail: arun@knowledgeworksindia.com Linkedin Profile: http://www.linkedin.com/in/arunrkoundinya

Вам также может понравиться