Skip to content

LearningLine/intensive-cpp-demos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

Alt text

Intensive C++ Demos

Welcome to DevelopMentor's demos repository for our Intensive C++ Training Course.

If you are in this course right now, start by selecting your course's branch and then just click 'Download ZIP' or clone this repo to your system. On the other hand, if you took my course awhile ago and want access to the demos, your course has probably been moved to another branch. Use the branches dropdown to find it just contact me (email address is listed in my github profile).

If you are not in one of our courses, enjoy the samples and please consider DevelopMentor for your C++ Training!

Cheers, @DevelopMentor_ - https://www.develop.com/

What you will learn in this course

Designed specifically for the experienced programmer who wants to learn as much as possible about C++ in one week. Intensive C++ delivers a comprehensive, in-depth view of the C++ language. Included is complete coverage from fundamental concepts of class, inheritance, virtual functions, etc. through topics such as templates, exceptions, namespaces, RTTI, and the standard libraries. 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.

Course Outline

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 invokation 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.

Operator

  • Cover operator overloading and various operators.

Dynamic Memory 2

  • Discuss use of dynamic memory by classes, and copy and assignment issues.

Exceptions

  • Introduce exceptions, various syntax and use, and interaction with destructors.

Day 4

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.

Functions 2

  • Learn function objects, overloading operator function call, pointers to global functions and member functions, and callback-based notification.

Day 5

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.

Patterns

  • Introduce idea of design patterns and work through example patterns.

Object-Oriented Programming and Design

  • Examine principles and concepts in object-oriented programming and design. Work through typical design example and consider various issues such as decoupling, reuse, and ease of extension.