First-class Functions in C++: Defining & Using First-class Functions

C++ 17    |    Expert
  • 11 videos | 1h 9m
  • Includes Assessment
  • Earns a Badge
While C++ is considered an object-oriented language, it provides support for functional programming, including support for first-class functions in three manners: function pointers, function objects, and lambdas. In this course, discover the complexity of C-style function pointers by creating them and invoking functions through them. Next, learn about the various features and uses of function pointers and how to accept functions as input arguments and return functions from a higher-order function. Finally, examine function objects (functors) and use them to overload the call operator, instantiate objects, and use the overloaded call operator. Upon completion, you'll be able to list the properties of C++ first-class functions, create function pointers, return functions from a higher-order function, and define and invoke a functor.


  • discover the key concepts covered in this course
    define function objects and function pointers
    create function pointers and invoke functions through them
    invoke various functions through function pointers and identify the features and uses of function pointers
    return functions from other functions
    use and differentiate typedefs and type aliases
  • Pass and accept functions as input arguments
    utilize templates with higher-order functions and type aliases
    create and use function objects (functors)
    use functors with templates
    summarize the key concepts covered in this course


  • 1m 49s
  • 5m 38s
  • Locked
    3.  Creating Function Pointers
    7m 57s
  • Locked
    4.  Invoking Functions through Function Pointers
    8m 47s
  • Locked
    5.  Returning Functions from Other Functions
    7m 30s
  • Locked
    6.  Using Typedefs and Type Aliases
    5m 6s
  • Locked
    7.  Passing Functions in as Input Arguments
    6m 7s
  • Locked
    8.  Utilizing Templates with Higher-order Functions
    6m 34s
  • Locked
    9.  Creating and Using Functors
    6m 22s
  • Locked
    10.  Using Functors with Templates
    9m 29s
  • Locked
    11.  Course Summary
    3m 43s


Skillsoft is providing you the opportunity to earn a digital badge upon successful completion on some of our courses, which can be shared on any social network or business platform.

Digital badges are yours to keep, forever.