Learn By Example: C++ Programming - 75 Solved Problems

Video description

Like a gruff uncle, C++ seems intimidating, when it’s just being helpful. These 75 examples will help you understand that. Let's parse that. C++ seems intimidating because all too often, what you see is not what you get. Usually, that's because C++ is trying to help you, but you don't realize that. This section is moving to C++ from C: If you are a C programmer, will run through what you need to know in order to move seamlessly to C++. Objects, Classes and Object-Oriented Programming: Access modifiers, classes, objects, the this pointer, new/delete and dynamic memory allocation gotchas. Operator overloading is a particularly complicated topic - C++ is virtually alone in the ubiquity of overloaded operators. Make sure this doesn't trip you up. Also go deep into the workings of const, static and friend. Inheritance in C++ is considerably more complicated than in Java, mostly because of multiple inheritances, and because of the co-existence of both virtual and non-virtual methods. Templates are a classic generic programming technique that was revolutionary when first added to C++. Understand template functions and classes, as well as template specializations. STL - the Standard Template Library - is incredibly powerful. Get a good sense of collections, iterators and algorithms - the major components of the STL. C++ casts are quite different than C-casts. Understand const_cast, static_cast and dynamic_cast, as well as Real Time Type Identification (RTTI), and the manner in which explicit conversions can be performed using static_cast. Exceptions and exception handling in C++.

What You Will Learn

  • Harness the full power of C++ without being intimidated by the language s complexities
  • Use inheritance, operator overloading, templates, STL and all major C++ language features

Audience

Java and C# programmers - who understand Object Oriented Programming, but are new to C++. Folks with prior programming experience in C. No prior object-oriented programming experience is needed.

About The Author

Janani Ravi: Janani Ravi is a certified Google Cloud Architect and Data Engineer. She has earned her master's degree in electrical engineering from Stanford. She is currently in Loonycorn, a technical video content studio, of which she is a cofounder. Prior to co-founding Loonycorn, she worked at various leading companies, such as Google and Microsoft, for several years as a software engineer.

Table of contents

  1. Chapter 1 : Introducing C++
    1. Introducing C++
  2. Chapter 2 : Moving from C to C++
    1. C and C++ - similar in some ways but actually very different
    2. C vs C++: Comments are different - and oh C++ has namespaces!
    3. Namespaces? Then we need a scope resolution operator
    4. Not just function overloading, C++ allows operator overloading as well!
    5. Default Values
    6. References, Const and Bool
  3. Chapter 3 : Objects and Classes
    1. Classes mean different things to different people!
    2. Classes - A logical grouping of data and functions
    3. Example 1 and 2: Define a really simple C++ class and instantiate it
    4. Example 3: Invoke the member functions of an object
    5. Example 4 and 5: Setup and clean up using constructors and destructors
    6. Example 6: Access Modifiers
  4. Chapter 4 : Multi-file Programs
    1. Example 7: Separating code into .cpp and .h files
    2. Example 7: Setting up dependencies with multiple files
  5. Chapter 5 : Dynamic Memory Allocation: new and delete
    1. Dynamic Memory Allocation
    2. C++ memory allocation explained
    3. Stop using malloc and free
    4. Do not mix new/delete for single variables with array equivalents new[]/delete[]
    5. Example 8 and 9: Stop using malloc and free, use new and delete instead!
    6. Example 10 and 11: Use new[] and delete [] for arrays - never mix new and new[]
    7. Example 12: The Placement new operator and the "this" pointer
  6. Chapter 6 : The C++ string Class
    1. The C++ string class
    2. Example 14: Strings
    3. Example 15: Inputing multiline strings
    4. Example 16: More common string operations
    5. Example 17: Comparing strings
    6. Example 18: Converting C++ to C strings (and vice versa)
  7. Chapter 7 : References
    1. The basic idea of references
    2. Example 19, 20 and 21: A simple reference, a const reference, and C++ swap
    3. Example 22, 23, 24, 25: Reference initialization, reassignment, aliasing, null
    4. Example 26, 27, 28, 29: References to pointers, references as return types
  8. Chapter 8 : The const Keyword
    1. Example 30 and 31: The C++ const keyword
    2. Example 32: const char* or char* const?
    3. Example 33, 34, 35, 36: Const methods, mutable, overloading on const, const_cast
    4. Passing function parameters const references
    5. Example 37: Passing function parameters const references
  9. Chapter 9 : The static Keyword
    1. The basic idea of static in C++
    2. Example 38: Static member variables
    3. Example 39 and 40: Static member functions
    4. Example 41: const static member variables
  10. Chapter 10 : The friend Keyword
    1. The basic idea of friends in C++
    2. Example 42: Friend functions
    3. Example 43: Friend classes
  11. Chapter 11 : Operator Overloading
    1. Understanding operator overloading - internal and external operators
    2. Choosing between internal and external implementations
    3. Example 44: Overloading the += operator
    4. Example 45: Overloading the + operator
    5. Example 46: Overloading the ++ (and --) operators
    6. Example 47: Overloading the assignment operator
    7. Operator Overloading - Streams Flashback
    8. Example 48: Overloading the and >> operators
  12. Chapter 12 : Inheritance
    1. Understanding inheritance - Flashback to objects and classes
    2. Example 49 Understanding Inheritance
    3. Inheritance Explained – I
    4. Inheritance Explained – II
    5. Example 49: Access levels and inheritance types
    6. Example 49: Bringing all inheritance concepts together in code
    7. Examples 50, 51, 52: Types of inheritance
    8. Example 53: virtual functions
    9. Example 53 (continued)
    10. Example 54: pure virtual functions and abstract classes
    11. Example 55: Multiple Inheritances, and a Diamond Hierarchy
    12. Example 56: Virtual inheritance in a Diamond Hierarchy
    13. Example 57: Object Slicing
    14. Example 58: No virtual function calls in constructors or destructors!
    15. Example 59: Virtual destructors rock!
    16. Example 60: Why virtual functions should never have default parameters
    17. Example 61: The strange phenomenon of name hiding
    18. Example 62: Never redefine non-virtual base class methods
  13. Chapter 13 : Templates
    1. Templates as a form of generic programming
    2. Example 63: A simple template function
    3. Example 64: Overriding a default template instantiation
    4. Example 65: A templated smart pointer class
    5. Example 66: Template Specialization (partial or total)
  14. Chapter 14 : STL - The Standard Template Library
    1. Introducing the Standard Template Library
    2. Example 67: The STL vector
    3. Example 68: Iterators
    4. Example 69: map, an associative container
    5. Example 70: STL algorithms
  15. Chapter 15 : C++ Casts
    1. C++ casts are way cooler than C casts
    2. Example 71: const_cast
    3. Example 72: dynamic_cast, and RTTI
    4. Example 73: static_cast, and the explicit keyword
  16. Chapter 16 : Exceptions
    1. Exception handling and burglar alarm
    2. Example 74: Throwing exceptions
    3. Example 75: Handling exceptions with try/catch

Product information

  • Title: Learn By Example: C++ Programming - 75 Solved Problems
  • Author(s): Loonycorn
  • Release date: January 2018
  • Publisher(s): Packt Publishing
  • ISBN: 9781789137774