C/C++ Programming: C++ 20 expert

https://www.skillsoft.com/channel/cc-programming-01645b70-e1a0-11e6-91a7-0242c0a80704?technologyandversion=1998129&expertiselevel=1998128 https://www.skillsoft.com/channel/cc-programming-01645b70-e1a0-11e6-91a7-0242c0a80704?technologyandversion=1998130&expertiselevel=1998128 https://www.skillsoft.com/channel/cc-programming-01645b70-e1a0-11e6-91a7-0242c0a80704?technologyandversion=1998132&expertiselevel=1998128 https://www.skillsoft.com/channel/cc-programming-01645b70-e1a0-11e6-91a7-0242c0a80704?technologyandversion=31746027&expertiselevel=1998128 https://www.skillsoft.com/channel/cc-programming-01645b70-e1a0-11e6-91a7-0242c0a80704?technologyandversion=1998129&expertiselevel=1998131 https://www.skillsoft.com/channel/cc-programming-01645b70-e1a0-11e6-91a7-0242c0a80704?technologyandversion=1998129&expertiselevel=41220854 https://www.skillsoft.com/channel/cc-programming-01645b70-e1a0-11e6-91a7-0242c0a80704?technologyandversion=31746027&expertiselevel=1998131 https://www.skillsoft.com/channel/cc-programming-01645b70-e1a0-11e6-91a7-0242c0a80704?technologyandversion=31746027&expertiselevel=41220854
  • 1 Course | 23m
  • 7 Books | 58h 25m
  • 5 Courses | 6h 27m 52s
  • 8 Books | 57h 7m
  • Includes Lab
  • 8 Courses | 6h 33m 35s
  • 6 Books | 36h 38m
  • Includes Lab
  • 5 Courses | 7h 41m 44s
  • 7 Books | 35h 11m
  • 17 Courses | 22h 23m 49s
  • 8 Books | 65h 30m
  • 19 Courses | 25h 59m 7s
  • 5 Books | 59h 48m
  • 5 Courses | 6h 39m 52s
  • 5 Books | 22h 59m
  • 3 Courses | 4h 51m 25s
Rating 5.0 of 1 users Rating 5.0 of 1 users (1)
 
C is the general-purpose language upon which many other languages are built. Discover C and its nuances.

GETTING STARTED

Defensive C++: Software Engineering Principles & Types of Errors

  • 1m 49s
  • 12m 16s

GETTING STARTED

Data Types, Modifiers, Operators, and Flow Control

  • 4m 43s
  • 4m 15s

GETTING STARTED

Basics, Data Types, Constants, & Variables

  • 3m 43s
  • 3m 45s

GETTING STARTED

Fundamentals of the C Language: Getting Started

  • 1m 49s
  • 7m 27s

GETTING STARTED

Functions in C++: Using Functions & Parameter Passing

  • 3m 5s
  • 9m 35s

GETTING STARTED

Pointers and References in C++: Getting Started with Pointers

  • 2m 15s
  • 8m 8s

GETTING STARTED

Functions and Memory in C: Getting Started with Functions

  • 1m 56s
  • 6m 10s

GETTING STARTED

Advanced Topics in C: Getting Started with File Handling

  • 2m 7s
  • 6m 21s

COURSES INCLUDED

Defensive C++: Software Engineering Principles & Types of Errors
Using high-quality code in any programming language involves writing code that is clear, comprehensible, and maintainable. This means that your code needs to follow sound software engineering principles, and it is also important to know and deal with the different kinds of errors that might occur in code. Use this course to explore key principles of software engineering and learn how the preprocessor, compiler, and linker come together to build your C++ executable. You will also examine different kinds of errors in code, including compiler, linker, runtime, and logic errors. When you are finished with this course, you will have the skills and ability to implement software engineering principles to write clean and comprehensible code.
13 videos | 1h 48m has Assessment available Badge
Fundamentals of C++: Getting Started
Since its inception about three and a half decades ago, the C++ language has constantly reinvented itself and kept pace with changing times. This constant reinvention has kept C++ relevant for many use cases today. Explore the history of C++ and the difference between classic C++ and modern C++. Discover the compilation process of C++ and the role of the pre-processor, the compiler, and the linker. Look at the variety of compilers available for C++ and the C++ standard library. Finally, learn how to install C++ and write, compile, and run simple C++ programs. You will work with the MSYS2 collection of utilities and familiarize yourself with the VSCode integrated development environment (IDE). By the end of this course, you will have a solid foundation of the basics of C++ and a good sense of why C++ language features evolved the way they did.
13 videos | 1h 30m has Assessment available Badge
Fundamentals of C++: Using Variables & Datatypes
Variables and datatypes are basic building blocks of any programming language. This is especially true for C++, which has a very complex type system. In this course, we will be reintroducing constructs from C and emphasize the differences between variables and datatypes in C++ relative to those in C. Start by considering the difference between the initialization and declaration of a variable. Explore arithmetic, relational, and logical operators and make use of the C++ boolean type. Finally, explore strings in C++ and utilize many of the powerful methods provided by the String class, which are available for use on all string objects. Upon completion, you'll be able to distinguish between variable declaration and initialization, initialize variables using functional, assignment, and braced syntax, and leverage the C++ boolean type and the std::string class.
13 videos | 1h 38m has Assessment available Badge
Fundamentals of C++: Using the auto Keyword, Enums, and I/O Streams
C++ supports many different programming paradigms including object-oriented programming, functional programming, and template programming. As a result, the C++ type system is quite complex and it can get quite complicated to figure out the correct type for a variable Learn how to use the auto keyword to request that the compiler infer the type of a variable from its context. Discover how to use the typeid() function to get a type info object for every variable and to verify that the auto keyword has worked as intended. Next, explore enums and identify the differences between C-style and C++-style enums. Learn about input and output streams, in particular the cin and cout streams used in C++. Finally, discover how to use I/O manipulators to control the appearance of objects on these streams. After comleting this coures, you'll be able to utilize the auto keyword to infer the type of a variable and deploy IO manipulators to correctly format data on input and output streams.
8 videos | 55m has Assessment available Badge
Control Structures in C++: Using Conditional Control Structures
Control structures in C++ are syntactically very similar to those in C, but with some important differences. This course will help you learn to use control structures in C++ and better understand how they differ from those in C. You will start this course by going over the control structures available in C++. You will then move on to working with vectors and iterators over vectors, which are important parts of the standard template library. Finally, you will work with switch statements and learn some tips and tricks related to working with cases based on strings. Upon completion, you'll be able to use variables in the condition of an if-block to restrict its scope, and use switch statements with hash functions and the STL map object to switch based on the values of a string.
14 videos | 1h 38m has Assessment available Badge
Control Structures in C++: Range-based for Loops
One of the many differences between modern C++ and classic C++ is the presence of range-based for loops. These were added to the standard in C++11 and allow for loops to iterate easily over a container and reduce the risk of off-by-one errors. They also eliminate the need for an integer index variable to index into a container. Start this course by reviewing how for loops work to iterate over arrays. Create arrays with different numbers of dimensions and iterate over the dimensions using nested for loops. Discover how to use containers from the standard template library to experiment with maps and vectors. Explore the use of the cbegin(), cend(), rbegin(), rend(), crbegin(), and crend() functions. Finally, use range-based for loops and explore the use of the debugger in this context. You will also note the important differences between value type loop variables in for loops and reference type variables.
14 videos | 1h 37m has Assessment available Badge
SHOW MORE
FREE ACCESS

COURSES INCLUDED

Data Types, Modifiers, Operators, and Flow Control
C++ is a typed language, it is vital you understand how to correctly work with data. Explore the data types in C++, work with modifiers and operators, and learn how to manage flow control in your C++ programs.
14 videos | 1h 20m has Assessment available Badge
Functions, References, Exceptions Strings & Namespaces
A function is a group of statements that performs a specific task, and may or may not return a value after execution. Explore the basics of creating custom functions, using strings, handling exceptions, and including namespaces in C++.
19 videos | 1h 37m has Assessment available Badge
Classes, Functions, and Object-oriented Programming
Object-oriented programming is based on the use of objects created from class definitions. Explore the basics of creating custom classes and object-oriented programming principles such as encapsulation and inheritance in C++.
12 videos | 59m has Assessment available Badge
C++ Templates and Containers
Containers are implemented as class templates and are used to replicate structures such as arrays, queues, stacks, and lists. Discover how to use templates and containers in your C++ programs.
16 videos | 1h 15m has Assessment available Badge
C++ Standard Template Library Algorithms and Operations
The C++ Standard Template Library is a set of template classes that let you easily implement common algorithms and data structures. Explore the Standard Library algorithms and operations, including sorting and merging.
16 videos | 1h 14m has Assessment available Badge
SHOW MORE
FREE ACCESS

COURSES INCLUDED

Basics, Data Types, Constants, & Variables
C is a general purpose language with standards specified by the American National Standards Institute (ANSI). Get started writing C programs as you learn how to work with data types, variables, and constants in C.
12 videos | 47m available Badge
Operators, Conditional Statements, & Branching
It is important to know the order in which your C code will execute to achieve the desired results. Learn to work with operators in C, and how to implement program flow using conditional statements and branching.
14 videos | 52m available Badge
Looping & Functions
When writing C programs, you often need to execute a block of statements multiple times. Learn how to implement iterative programming with loops and user-defined functions.
13 videos | 51m available Badge
Common Functions
The C language includes a number of built-in functions for use in your programs. Discover how to work with some of these functions, as well as the purpose of and how to use pointers in C.
13 videos | 51m available Badge
Data Structures
C includes a number of structures to make it easy to work with and manipulate numeric and character data. Learn how to work with arrays, strings, and the structure data type in C.
13 videos | 54m has Assessment available Badge
Unions & File Management
In C, a structure data type and a union are similar. Learn to use unions in your C programs, as well as how to work with and manage files.
11 videos | 46m available Badge
Functions, Storage Classes, & Data Modifiers
Write better C programs! Discover how to manipulate program execution in C using built-in functions, and learn how to work with storage classes, data modifiers, and volatile variables.
11 videos | 41m has Assessment available Badge
The C Preprocessor & Optimization
Improve the performance of your C programs! Learn how to use dynamic memory allocation (DMA) and the C preprocessor to optimize C programs.
13 videos | 47m available Badge
SHOW MORE
FREE ACCESS

COURSES INCLUDED

Fundamentals of the C Language: Getting Started
The C programming language has retained its relevance for close to 50 years. The code for most major operating systems and performance-critical server code in some leading data solutions continues to be written in the C language. In this course, you will begin by learning about the basic properties of C, the compilation process of the C language, and common IDEs used to write C code. Next, discover how to install the Clang compiler for compiling and running C on Mac and the Visual Studio Code IDE to write C code. Next, set up the minGW compiler for C on Windows. Finally, explore the basic syntax of C code, write and compile code and view its results, and explore the warnings and errors that occur when the syntax is violated.
12 videos | 1h 23m has Assessment available Badge
Fundamentals of the C Language: Variables & Datatypes
The C programming language is statically typed, which means that all variables have an associated type specified in the code. The C compiler will rigorously check that values stored in these variables match the declared types. In this respect, C differs from popular languages such as Javascript and Python where the types of variables can be inferred at runtime. You will start this course by learning the basics of variables in C. Learn about the data types that can be stored in those variables and how to use arithmetic operators to perform mathematical operations between literals and on variables. Discover basic arithmetic operators, then progress to unary and assignment operators. Finally, explore relational and logical operators in C and discover how to use relational operators to compare two numbers, and logical operators such as AND, OR, and NOT to combine predicates.
13 videos | 1h 34m has Assessment available Badge
Fundamentals of the C Language: Arrays, Accepting Input, & Returning Output
Arrays in C are important data structures that provide a convenient way to access multiple elements of the same data. C arrays are indexed using integers starting from 0 and reside in a contiguous chunk of memory. Arrays are also closely related to pointers, another important building block in the C language. Start this course by learning how to create, populate, and access elements of arrays. Discover how to declare variables of array types, initialize those arrays with data, and get and set the values of elements of arrays. Create multidimensional arrays and work with strings as arrays of characters. Next, learn how to print values using output functions such as printf, putchar, puts, and fprintf. Explore the different format specifiers used to represent data types in printf and how to enumerate the strengths and weaknesses of these different output functions. Finally, learn about accepting user input using library functions such as scanf, gets, fgets, and getchar.
8 videos | 47m has Assessment available Badge
Control Structures in C: Getting Started with Control Structures
A control structure in C is any code construct that changes the flow of control, such as the order of execution in a program. The three main types of control structures in C are decision-making control structures, looping control structures, and unconditional control structures. Decision-making control structures include if-else blocks and switch statements. You will start this course by working with the if statement control structure. This checks whether a condition is satisfied or not, and returns an output based on that. You will then use the if-else-if ladder to create multiple conditions that will be checked in order. The code block associated with the first condition that is satisfied will be executed, and subsequent conditions will not even be checked. Finally, you will learn about the ternary operator, which makes use of the ? and : symbols to create an if-else block and store the result in a variable. Upon completion of this course, you'll be able to work with control structures to change the flow of execution of a C program, use if and else conditions, and employ the ternary operator in assignments and expressions
17 videos | 1h 54m has Assessment available Badge
Control Structures in C: Looping & Unconditional Control Structures
The three main types of looping control structures in C are for loops, while loops, and do-while loops. This course provides demos for how to work with looping and unconditional control structures in C. You will begin by creating a for loop which iterates over a block of code for as long as a certain condition is true. You will then experiment with the loop condition, the value of the loop variable, and the update expression for the loop variable, before moving on to iterating over arrays using for loops. You will also create nested for loops. Next, you will use while loops to execute some code while a condition is satisfied. You will explore the loop variable and iterate over arrays, then move on to do-while loops. Finally, you will learn about the unconditional control structures such as break, continue, goto, and return keywords. These are typically used with other control structures. After completing this course, you'll be able to implement while loops, for loops, do-while loops, break statements, and continue operators.
17 videos | 2h 2m has Assessment available Badge
SHOW MORE
FREE ACCESS

COURSES INCLUDED

Functions in C++: Using Functions & Parameter Passing
Functions remain an important construct for code modularization and reuse in C++, even though C++ is an object-oriented language. Learn how to use functions in C++, focusing on free functions, and examine the distinction between declaring a function, where you specify the function's signature, return type, and name; defining a function, where you create the body of a function; and invoking the function. Then, explore the semantics of passing parameters by value to C++ functions. Finally, compare pass-by-reference semantics to pass-by-value semantics and investigate the differences. Upon completion of this course, you will be able to use pass-by-value and pass-by-reference semantics in the context of function invocation in C++.
12 videos | 1h 31m has Assessment available Badge
Functions in C++: Using Default Arguments & Function Overloading
C++ allows you as the developer to specify default values for the input arguments into your functions, and supports function overloading. Both of these are powerful techniques for code reuse. Explore how to use default argument values for C++ functions, including important rules that govern such default values. Examine the semantics of return values from functions and learn how to avoid the dangling pointer problem. Discover function overloading, learn how to split the declaration and implementation of a function across header and implementation files, and learn the correct way of importing these header files into code to invoke that function. Upon completion, you'll be able to specify default values for function arguments, overload functions based on input arguments and const, and split functions across .h and .cpp files.
8 videos | 56m has Assessment available Badge
Defensive C++: Defensive Programming & Defensive Design
While defensive design involves planning for contingencies that might occur in a software development life cycle, defensive programming entails writing code such that it continues to function predictably in the presence of unforeseen circumstances. Through this course, explore the role of defensive programming and defensive design and the implementation of a defensive barrier in your code. You'll investigate various error reporting techniques, recognize scenarios for implementing a technique rather than exceptions, and distinguish between using exceptions and assertions to raise errors. The course will also help you discover how to use preconditions to check for inputs to your code and postconditions to verify the final results returned by your code. At the end of this course, you will have the skills and ability to follow a defensive approach to your software development and use exceptions and assertions to flag preconditions and check for postconditions.
12 videos | 1h 32m has Assessment available Badge
Defensive C++: Writing Defensive C++ Code
Writing good, robust, and maintainable C++ code involves understanding the intricacies of the language and avoiding common pitfalls. Use this course to learn more about avoiding fatal coding errors, adopting defensive coding techniques, and following best practices and other code niceties Examine some common coding errors, the correct way to set up constructors in code, and the pitfalls of overriding non-virtual functions. You will also explore object slicing errors, how to cast objects to other types, and the use of smart pointers to manage resources in C++. Finally, you will understand the implications of the static initialization order fiasco in C++ and how you can avoid it. At the end of this course, you will have the knowledge and skills to write robust, defensive C++ code.
12 videos | 1h 34m has Assessment available Badge
Defensive C++: Managing Memory
Modern C++ offers the use of smart pointers in the C++ standard library, which uses the resource allocation is initialization (RAII) technique to free programmers from the burden of resource management. Take this course to discover the various pitfalls involved in manually managing memory on the free store in C++. Through this course, you'll explore how to automate the management of resources that need to be explicitly acquired and reduce resource management issues through the RAII technique. When you are finished with this course, you should be able to manage memory and other resources in your C++ code using smart pointers from the standard library.
6 videos | 45m has Assessment available Badge
Defensive C++: Design by Contract & Features in C++
Design by contract (DbC) involves two parties, a client and a supplier, collaborating based on mutual obligations and benefits. DbC was intended to be released as a part of the C++ language in C++20, but will now be part of the C++23 release. Use this course to examine the technical specifications of design by contract and the role of its key components - preconditions, invariants, and postconditions. You'll explore the most important features released in C++20, including the ranges library, coroutines, concepts, and modules. You'll also discover the weaknesses in defensive programming and when to implement offensive programming techniques in your code. When you are finished with this course, you will be able to tackle complex projects built using C++ and write code for them using software engineering principles and defensive programming techniques.
6 videos | 33m has Assessment available Badge
OOP in C++: Getting Started with Object-oriented Programming
C++ is an object-oriented programming (OOP) language wherein developers model real-world entities, create classes, and instantiate objects of classes. In this course, learn how the object-oriented programming approach functions at a conceptual level. Discover how class act effectively as blueprints and explore member variables. Then, examine class definitions in your C++ programs and practice instantiating objects of those classes. Next, learn how to perform simple operations on those objects, invoke methods on them, and access and examine their member variables. Finally, learn how to modularize your code and declare a class in the header file. After completion of the course, you'll be able to define classes, instantiate objects, and split class implementation and declaration.
12 videos | 1h 25m has Assessment available Badge
OOP in C++: Instantiating Objects Using Constructors
A constructor is a special method of a class invoked when an object of that class is created. Constructors have a fair bit of complexity, and can be chained to achieve code reuse and marked as explicit to avoid unexpected type promotions and object creation. In this course, examine the important aspects of constructor syntax, such as specifying default arguments and correctly using initialization lists. Next, learn how to chain constructors and retain most of the code functionality in one constructor. Finally, learn how constructors might be invoked automatically by the C++ runtime to create objects for method invocations. After completion of the course, you'll be able to correctly initialize variables using initialization lists, connect constructors using constructor chaining, and create structs.
8 videos | 49m has Assessment available Badge
OOP in C++: Using the this Pointer & const Members
When a member function is invoked on a particular object, that object is known as the receiver. Within the body of the member function, you can access the member variables of the receiver using the "this" pointer. In this course, discover how the this pointer works and practice using it to access states. Next, learn about constness in object-oriented programming and the restrictions for what such methods can do. Finally, learn how to use the mutable keyword to mitigate constness. After completion of the course, you'll be able to access member variables from within member functions, create const and non-const objects and functions, and use the mutable specification to identify states that can be changed without changing the meaning of the object.
10 videos | 1h 5m has Assessment available Badge
OOP in C++: Using Static Members & Destructors
Static means something different in C++ compared to C. In C, static refers to a storage class for storing specific types of variables. In C++, static refers to member functions and variables associated with the entire class. In this course, learn how to mark a member variable within a class as static, initialize a static member variable, and access it from methods within and outside the class. Next, discover how static member functions can be used for class-level behavior. Finally, learn how to define and use a destructor. After completion of the course, you'll be able to create and use static variables, access them using the scope resolution operator, and instantiate and deallocate a pointer in constructors and destructors.
9 videos | 55m has Assessment available Badge
OOP in C++: Copy Constructors, Nested Classes, & Namespaces
A copy constructor in C++ classes is a specialized method used to create an object from another object of the same class. Other specialized C++ methods include nested classes and namespaces, which organize different classes in a logical and coherent manner while avoiding name conflicts. In this course, learn how to specify and use a copy constructor. Next, discover how classes and functions can be marked as friends. Finally, examine how nested classes can be defined and used in C++ and practice using namespaces to modularize your code. After completion of the course, you'll be able to create and implement a custom copy constructor, access private variables using friend functions and classes, and store functions and classes in namespaces.
13 videos | 1h 42m has Assessment available Badge
C++ Inheritance & Polymorphism: Using Inheritance for is-a Relationships
Inheritance is a powerful, object-oriented language construct in which one class can be related to another class using an is-a relationship. Using inheritance, you can construct complicated class hierarchies in which one class is a parent or a base of another class. Is-a relationships are a great way of performing object-oriented design and are complemented by has-a relationships, which are implemented using composition, rather than inheritance. Explore inheritance relationships by setting up an inheritance hierarchy in C++ and specifying one class as the parent of another class. Then discover how member variables and methods are accessible from the drive class, as well as from external code. Finally, investigate base class access specifiers, and find out how they work with member access specifiers. When you're finished, you'll clearly understand how to use inheritance for is-a relationships and how to identify uses for private inheritance.
14 videos | 1h 30m has Assessment available Badge
C++ Inheritance & Polymorphism: Constructors, Destructors, & Inheritance
The order in which constructors and destructors are invoked on an object of a derived class in an inheritance hierarchy is a very important topic. Constructors are invoked in order from the top-most (most base-level) class, down to the most derived class. Destructors are invoked in the reverse order. Explore how constructors work in an inheritance hierarchy, the order in which the base and derived class constructors are invoked, and how initialization lists need to be used in the derived class. Discover how to use copy constructors and destructors in the context of inheritance. Learn how to set up an inheritance hierarchy for polymorphism. Finally, practice using objects in an inheritance hierarchy with variables of pointer and reference types. When you finish this course, you will have a solid foundation in constructors, destructors, and inheritance, setting the stage for runtime polymorphism and dynamic method dispatch.
11 videos | 1h 24m has Assessment available Badge
C++ Inheritance & Polymorphism: Understanding & Using Polymorphism
Inheritance forms the basis for polymorphism, specifically runtime polymorphism, which is a powerful object-oriented programming construct. Runtime polymorphism involves a pointer or a reference of the base class type holding an object of the derived class. The beauty of runtime polymorphism is that when virtual methods are invoked on this pointer, the derived class versions are executed. You will start this course by defining name hiding and how most methods on C++ objects are, by default, statically dispatched. You will then learn about polymorphism and dynamic dispatch, which is accomplished using the virtual keyword. Finally, you will learn how the ‘override' and 'final' specifications can be used to achieve precise semantics and reduce the scope of bugs and typos in your C++ programs.
15 videos | 2h 3m has Assessment available Badge
C++ Inheritance & Polymorphism: Pure Virtual Functions & Abstract Classes
Pure virtual functions and interfaces are very powerful tools in object-oriented programming, and interface-driven programming is a great way of splitting up work across different developers on a large project. You will start this course by considering why your destructors should be marked as virtual in the base class if you have an inheritance hierarchy. You'll see the harmful effects of not using virtual destructors in an inheritance hierarchy and the problems with object slicing. You will also learn why it is preferable to have variables of reference types to the base class rather than the value types. You will then move to some finer points of working with virtual methods, such as, the inadvisability of using default parameters because these are statically bound. Finally, you will master the syntax and semantics of pure virtual functions and learn how a class that contains even one pure virtual function becomes an abstract class that cannot be instantiated directly.
10 videos | 1h 21m has Assessment available Badge
C++ Inheritance & Polymorphism: Multiple Inheritance & the Diamond Hierarchy
C++ allows multiple inheritance, which means that one class can have more than one base. C++ also has some powerful mechanisms for dealing with edge cases such as the diamond hierarchy. You will start this course by learning the precise syntax which is required to implement multiple inheritance in C++, specifically, how it's important to have both base class access specifiers marked independently. You will then move on to the topic of a diamond inheritance hierarchy, in which the grandchild-level derived class has two parents, both of which inherit from the common, grandparent level base class. Finally, you will see how dynamic casts work in the context of an inheritance hierarchy, how these are a lot safer than static casts, and how they return a null value on failure when used with pointers but they throw an exception on failure when used with references.
11 videos | 1h 21m has Assessment available Badge
Exception Handling in C++
Exceptions are the most popular form of error handling and the try-catch block is superior to all other error handling mechanisms because it forces the invoking function to manage the errors. In this course, learn how exceptions are thrown and caught. Next, practice creating and using custom exception objects and discover why exceptions must be caught by reference. Finally, explore object slicing results, the semantics and limitations of the noexcept keyword, and the pitfalls of exceptions that occur within constructors. Upon completion, you'll be able to correctly throw and handle exceptions using try/catch blocks, enumerate semantics and limitations of the noexcept keyword, and mitigate problems related to exceptions thrown during the construction of an object.
14 videos | 1h 47m has Assessment available Badge
SHOW MORE
FREE ACCESS

COURSES INCLUDED

Pointers and References in C++: Getting Started with Pointers
As a superset of C, C++ also has support for pointer variable types that point to specific memory locations. While the pointer types function similarly, the terms related to pointer variables have evolved from C to C++ and modern C++, as you will see in this course. Begin this course by creating pointers to values and arrays. You will then move to the use of the nullptr keyword, and see how it differs from the NULL value used in C. Finally, you will create pointers to vectors and maps. After completion of this course, you'll have a solid foundation of using pointers to stack memory locations in C++ and create pointers to vectors and maps.
9 videos | 58m has Assessment available Badge
Pointers and References in C++: Allocating Memory with New & Delete Operators
C++, like C, has powerful support for memory allocation and deallocation. In the world of C, these operations are performed using malloc() and free(), which are not to be used in the C++ world. In classic C++, memory allocation and deallocation are performed using the new and delete operators. You will begin this course by understanding the new and delete keywords, and note how these lead to the invocation of the underlying constructors and destructors on whatever objects are being worked with. In contrast, the C versions, that is, malloc() and free(), do not invoke constructors or destructors. You will then move on to the use of array new and array delete, which is how the new and delete followed by square brackets are referred to. Finally, you will look at the differences between const pointers and pointers to consts.
13 videos | 1h 25m has Assessment available Badge
Pointers and References in C++: Using Smart Pointers in Modern C++
Dynamic memory allocation and deallocation in C are performed using malloc() and free(). In classic C++, dynamic memory allocation and deallocation are performed using new and delete, and array new and array delete. In modern C++, it's smart pointers that take over. Begin this course by examining the idea behind smart pointers. You will then explore the different types of smart pointers, including unique pointers, shared pointers, and weak pointers. Discover why weak pointers are required in some cases to avoid circular references that can cause memory leaks. After completing this course, you'll be able to use smart pointer objects, leverage RAII to use shared, unique, and weak pointers, and avoid circular references using weak pointers.
13 videos | 1h 39m has Assessment available Badge
Pointers and References in C++: Working with References
C++ supports a variable type known as the reference. You can think of references as being easier-to-use, lighter-weight versions of pointers. Begin by getting familiar with the syntax and semantics of references in C++, including the use of the & symbol to denote a reference type. Note some important differences between references and pointers, how references need to be assigned when they are created, how they cannot be reassigned or set to NULL, and how multiple references to the same underlying value are all effectively aliases for that value. Move on to declaring and using variables of reference type. Finally, learn about const references and experiment with different configurations of loops, where the loop variables are references, value types, and const references. Upon course completion, you'll be able to define and initialize variables of reference types, contrast pointers and references, and correctly use const references.
8 videos | 46m has Assessment available Badge
C++: Getting Started with Operator Overloading
Operator overloading is an unusual language feature that is quite important in C++, enabling you to specify implementations of the standard operators for your user-defined types. You can overload a wide variety of operators, each having a standard meaning for built-in types that can be mimicked in custom types. If used correctly, this can lead to natural, elegant-looking code. Begin this course by learning how to overload simple operators and explore the restrictions around overloading operators. Then, discover how to overload operators as member functions of a class, providing easy access to the internal state of the object. Finally, focus on identifying situations where the member function implementation will not work and investigate best practices of operator overloading.
12 videos | 1h 23m has Assessment available Badge
C++: Overloading Arithmetic & Relational Operators
Some of the most commonly overloaded operators include binary arithmetic operators, used in operations such as a + b; compound assignment operat+B30ors of the form a+= b; and the prefix and postfix operators of the form a++. In this course, discover how to overload binary arithmetic operators appropriately, so that they support correct semantics in chaining. Learn how to overload compound assignment operators, such as +=. Explore how the C++ compiler differentiates between the pre and post increment operators and how these operators work in various edge cases. When you complete this course, you will be able to confidently leverage std_rel_ops by overloading relational operators.
13 videos | 1h 45m has Assessment available Badge
C++: Stream Operators, Assignment Operators, & Copy-and-Swap
The stream insertion and extraction operators are often overloaded because they provide a convenient way to read objects in and write objects out to standard IO. The copy assignment operator is even more crucial because of how important it is in correctly freeing up resources held by an object. In this course, learn how to implement the correct overloads of the insertion and extraction operators and why these are invariably implemented as non-member functions. Then, move on to correctly overloading the copy assignment operator and using standard formats to ensure that resource cleanup occurs exactly once. Finally, find out how the copy-and-swap idiom provides a way to use the std::swap function to implement the copy assignment operator in a manner that is exception-safe. This idiom leads to an elegant implementation that is not only less complex, but also more robust.
12 videos | 1h 25m has Assessment available Badge
C++: Using Function Templates
Template metaprogramming is a powerful computer science technique used to achieve code reuse and some incredibly elegant architectures. In C++, template metaprogramming is achieved via template functions and classes that are instantiated at compile-time, not at runtime. In this course, learn how to define and instantiate function templates to effectively provide compile-time polymorphism. Then, explore how template definitions can make assumptions about the template parameters. Finally, learn how to define and use templates with pointer and reference types to provide function overloading.
14 videos | 1h 47m has Assessment available Badge
C++: Function Templates with Multiple Parameters & Non-type Parameters
Template programming is very powerful and can also get quite complicated. In this course you will tackle some of those complications by using multi-value function templates. Learn how decl_type and auto keywords can be used to allow type inference on the return type of a function. Work with default arguments for template parameters and see how this can lead to mismatches if done carelessly. Finally, define and specify non-type template parameters and explore the relationship between the values of those parameters and the compiler.
7 videos | 39m has Assessment available Badge
C++: Using Class Templates
Class templates are a way of reusing code for classes parameterized by types of internal state variables, just as function templates are a way of reusing code for functions parameterized by the types of input arguments and return types. In this course you will discover how to define and instantiate class templates, along with common uses of templated classes. Learn how to use the braced initialization list constructor and explore how the compiler provides this special construct so that container objects can be initialized from a list of values. Finally, investigate partial and full template specializations, and how partial specializations can be used to correctly deal with pointer types.
15 videos | 1h 52m has Assessment available Badge
C++: Using the Move Constructor & Move Assignment Operator
References are an important part of C++, and a little-known fact about references is that there are actually two types of references: l-value and r-value. In this course, explore those two reference types by learning how to use the syntax and semantics of r-value references to extend the lifespan of transient values. Then, implement the move assignment operator and move constructor, using r-value references as their input arguments, to reduce the number of unnecessary copies created in your C++ programs. Finally, work with Resource Acquisition Is Initialization (RAII) to use smart pointers as a way to bypass complex rules, such as the rule of three and the rule of five, allowing you to follow the simplest rule of all - the rule of 0.
11 videos | 1h 23m has Assessment available Badge
C++: Working with Sequence Containers
In C++, containers are structures that store collections of other objects known as elements. Sequence containers are used to store elements of the same type sequentially in a linear arrangement, and associative containers store elements in the form of key-value pairs. In this course, work with basic sequence containers called arrays, as well as vectors. Next, learn about forward lists and lists, which are sequence data structures that allow constant time insert and erase operations. Finally, discover how to work with deques (double-ended queues) and container adapters, including stacks, queues, and priority queues. Upon completion, you'll be able to contrast sequence and associative containers, enumerate properties, and correctly use stacks, queues, and priority queues.
12 videos | 1h 26m has Assessment available Badge
C++: Working with Associative Containers & Algorithms
Associative containers provide fast lookup in O(log n) time by associating each entry with a key. Sets and maps are both associative containers. Algorithms are classes that support container-agnostic operations performed on containers. In this course, learn how to create sets and iterate over them, as well as use ordered and unordered multisets. Next, practice creating maps and indexing into them using keys, as well as inserting key-value pairs into maps. Finally, examine how random access of elements is faster with unordered maps compared to ordered maps, and explore various STL algorithms. Upon completion, you'll be able to differentiate between sequence and associative containers, leverage STL algorithms, and instantiate and use sets, multisets, maps, and multimaps.
11 videos | 1h 21m has Assessment available Badge
File Handling in C++: Working with File Streams
C++ structures different file stream classes into an inheritance hierarchy. Input and output (I/O) operations are performed in C++ through streams, which act as intermediaries between the program and I/O devices, allowing programmers to not focus on how the actual device works. In this course, learn about the different classes and objects for C++ stream handling. Next, discover how to read data from files using objects of the ifstream class. Finally, practice writing out data to files using objects of the ofstream class, including writing out simple integers, floats, strings, and structured data. Upon completion, you'll be able to enumerate C++ file stream classes, read data from files using ifstream, and write data to files using ofstream.
9 videos | 57m has Assessment available Badge
File Handling in C++: Performing Advanced File Stream Operations
The insertion and extraction operators are very commonly overloaded in custom C++ classes. Such overloads make it easy to write objects out to cout or to file and read objects in from cin or a file. In this course, learn how to correctly overload the insertion and extraction operators for streams and explore different aspects of text data streaming. Next, work with different file open modes, including read, write, append, and ate modes. Finally, practice using the stream state bits contained within stream objects. Upon completion, you'll be able to leverage file open modes, check stream state bits, and correctly use the std::filesystem API.
15 videos | 1h 55m has Assessment available Badge
First-class Functions in C++: Defining & Using First-class Functions
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.
11 videos | 1h has Assessment available Badge
First-class Functions in C++: Using Lambdas & Closures
In C++, a lambda expression is an ad-hoc, locally scoped function object that offers a function definition syntax. Lambdas can be stored in variables and invoked like function objects or function pointers, but lambdas go further by supporting context capture. In this course, learn how to define and invoke lambda functions and pass and return input arguments to and from lambdas using the Standard Template Library (STL) algorithms. Next, explore how context capture works in lambdas and implement closures. Finally, work with context capture to specify captured variables and whether the capture is by copy or by reference. Upon completion, you'll be able to define and invoke a lambda function, perform context capture by value and by reference, and define closures inside class methods.
9 videos | 55m has Assessment available Badge
C++: Introduction to Graphics with SFML
Simple and Fast Multimedia Library (SFML) is a cross-platform, software development library used for designing gaming applications, providing features like audio, graphics, and a network, which together allow you to build the complete multimedia experience. Begin by creating and managing windows that can hold multimedia gaming applications. Learn how to keep a game constantly running and updated using a game loop. Next, explore event handling in SFML, including mouse clicks, scrolls, keypress events, resize, and focus events. Finally, use the Graphics module in SFML to draw graphical entities, like geometric shapes, to the screen and configure the properties of these entities. When you have completed this course, you will have the foundational knowledge to create and render graphical entities within SFML windows.
12 videos | 1h 34m has Assessment available Badge
C++: Creating a Complete Game in SFML
Multimedia applications require a number of different entities to come together - graphical entities, animations, views, audio, and networking. SFML's modules allow you to incorporate all of these in an easy and intuitive manner to build fully-fledged gaming applications. First, explore graphics entities such as textures and sprites to specify backgrounds and interact with different textures. Next, use vertex arrays to create and transform shapes by moving, rotating, and scaling entities. Then, create animations and play sounds using SFML. Finally, bring everything together to build a multimedia game of Tic-Tac-Toe, containing the logic for win-lose-draw. After completing this course, you will have the skills and ability to use SFML constructs to develop gaming applications.
11 videos | 1h 32m has Assessment available Badge
SHOW MORE
FREE ACCESS

COURSES INCLUDED

Functions and Memory in C: Getting Started with Functions
In C, as in other programming languages, the term function refers to a named and parameterized block of code that can be invoked repeatedly. Functions allow monolithic programs to be split into modular chunks, greatly facilitating code reuse and simplifying and improving the logical structure of programs. Explore C functions and learn how they are defined, declared, and invoked. Next, move on to built-in functions and discover how to convert strings to integers, floats, or longs. Then, you will create your own functions to accept input arguments from and return output to the invoker of the function. Finally, you will study the difference between the declaration and the definition of a function. After completing this course, you'll be able to define and invoke functions, understand implicit and explicit function declarations, and use both library functions and user-defined functions.
9 videos | 56m has Assessment available Badge
Functions and Memory in C: Using Variable Scopes, Storage Classes, & Structs
A vital part of programming is being able to reuse codes in an efficient and effective way. Using variable scopes, storage classes, different user-defined types like structs, unions and enums allow programmers to scale their programs and create meaningful structures. Begin by exploring variable scope and learn how to input argument scoping and redefine variables. Discover how to work with storage classes and access them in file scope, local scope, and across files. Finally, take a look at different user-defined types in C. Upon completion of this course, you will be able to confidently leverage variable scopes and storage classes to define values, scope, and visibility.
14 videos | 1h 31m has Assessment available Badge
Functions and Memory in C: Getting Started with Pointers
One of the main reasons C retains its relevance after 50 years is the level of interaction between the programmer and the memory which C allows for. While more modern languages such as Python manage the memory under-the-hood, C allows the user to control all aspects of memory management. At the heart of C's memory management capabilities lie pointers. Begin this course focusing on memory allocation layout and the concepts of stack and heap memory. Then, explore pointers to learn how to view the memory location referenced by the pointer and how to dereference a pointer to view the data at the referenced address or modify data stored at the memory location being pointed to. Finally, use the NULL keyword as both a value and a pointer to the non-existent memory address of 0. Upon completion of this course, you'll be able to use referencing and dereferencing operators in C and properly test for and use NULL values.
11 videos | 1h 20m has Assessment available Badge
Functions and Memory in C: Leveraging Pointers with Arrays & Functions
Pointers are some of the most important building-blocks of C and are used with a variety of data types. In particular, pointers have a special relationship with arrays, because an array is effectively a pointer to a contiguous block of memory used to hold elements of a specific type. In this course, you will create both arrays and pointers to those arrays. Next, take a deeper dive into the nuances of arrays and pointers and discover how to use pointer arithmetic as a method of viewing array elements. Finally, explore passing pointers and arrays into functions. After completing this course, you'll be able to leverage the equivalence between pointers and arrays, use pointer arithmetic, and return pointers from functions.
11 videos | 1h 19m has Assessment available Badge
Functions and Memory in C: Allocating Memory on the Heap
C programmers can commonly use two kinds of memory: stack and heap. While stack memory is used to store local variables and is fully managed by C, it does have major limitations that are mitigated by heap memory. In this course, you will compare stack and heap memory, exploring the advantages and limitations of each. Then, you will allocate memory using the malloc() function and deallocate memory using free(). Next, you will examine dangling memory issues that can cause potentially dangerous security issues. You will also explore other common allocation functions like calloc() to zero out memory and realloc() to help when you underestimate how much memory an array will require. Finally, you will focus on pointers to struct objects. After completing this course, you'll be able to allocate memory malloc, calloc, and realloc; free memory; use pointers to structs; and avoid problems related to dangling pointers and memory leaks.
11 videos | 1h 32m has Assessment available Badge
SHOW MORE
FREE ACCESS

COURSES INCLUDED

Advanced Topics in C: Getting Started with File Handling
File handling is an integral part of many medium-to-large-scale programs in C. Files are the most convenient way of managing data for the wide range of programs of this size. You will start this course by considering the advantages of using files in C and the most important functions for file handling, which are fopen() and fclose(). Explore the modes that fopen() can be used with and read and write data to text files. Begin by reading in individual characters with the fgetc() function, whole strings from a file using fgets(), and structured data with the fscanf() function. Discover how to use the r+, a+, and w+ modes, before turning to writing structured data using the fprintf() function. Next, learn how to read and write binary data by leveraging the fread and fwrite functions and the wb and rb modes. Finally, you will perform file seek operations using the functions fseek, ftell, and rewind to control the position your program is operating on in the file stream.
18 videos | 2h has Assessment available Badge
Advanced Topics in C: Managing Code Compilations Using Preprocessor Directives
One of the key attractions of C is the low-level control it gives us over its compilation process. Indeed, the C language allows us to control the compilation of a program to a level unmatched by other languages such as Java. You will start this course by learning the compilation process of C which includes four main steps: preprocessing, compiling, assembling, and linking. Once you grasp the output of each step in the compilation process, move on to investigating preprocessor directives. Next, use conditional preprocessor directives including #if, #elseif and #endif. Finally, discover how to issue instructions to the compiler using pragmas, upgrade a warning to a regular error, and convert a warning to an extremely severe fatal error. After completing this course, you'll be able to list the steps for compiling a C program including creating macros with preprocessor directives, control conditional compilation, and use pragmas to alter compiler settings.
10 videos | 1h 5m has Assessment available Badge
Advanced Topics in C: Using Strings, Header Files, & Type Conversions
Strings are the most fundamental way of representing text in any programming language. In C, they take the form of character arrays, delimited with a special character. Because of the equivalence between arrays and pointers in C, strings can also be represented using character pointers. Start this course by creating strings as arrays of characters, observing that the end of a string is delimited using the \0 character. Discover how strings are stored in character pointers and iterate over strings with pointer arithmetic and use the strlen(), strcpy(), strcmp() and strcasecmp() functions. Next, learn how to create header files and use the #include preprocessor directive to pull in both system and user-created header files. Explore type conversions and learn about implicit conversions. Finally, explore command line arguments including the use of argc and argv, and how these can be used in your C programs. Upon completion, you'll be able to to work with C strings using character arrays, library functions, and header files, perform type conversions, and use command line arguments in C programs.
15 videos | 1h has Assessment available Badge

EARN A DIGITAL BADGE WHEN YOU COMPLETE THESE COURSES

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.

BOOKS INCLUDED

Book

Beginning C++20: From Novice to Professional, Sixth Edition
Begin your programming journey with C++ , starting with the basics and progressing through step-by-step examples that will help you become a proficient C++ programmer.
book Duration 18h 22m book Authors By Ivor Horton, Peter Van Weert

Book

Exploring C++20: The Programmer's Introduction to C++, Third Edition
Discover everything you need to know about C++ in a logical progression of small lessons that you can work through as quickly or as slowly as you need.
book Duration 11h 18m book Authors By Ray Lischner

Book

C++ Programming: An Object-Oriented Approach
Using a combination of thorough well-ordered explanations and a strong visual framework to make programming concepts accessible, this book prepares students to tackle the academic and professional programming challenges they will encounter down the road with confidence.
book Duration 10h 10m book Authors By Behrouz A. Forouzan, Richard F. Gilberg

Book

C++20 for Lazy Programmers: Quick, Easy, and Fun C++ for Beginners, Second Edition
Ready to learn programming with less effort and more fun? Then do it the lazy way! This unique book uses humor and fun that will make you eager to do the projects as you master the popular and powerful C++ language.
book Duration 7h 6m book Authors By Will Briggs

Book

Modern C++ for Absolute Beginners: A Friendly Introduction to C++ Programming Language and C++11 to C++20 Standards
Learn the C++ programming language in a structured, straightforward, and friendly manner. This book teaches the basics of the modern C++ programming language, C++ Standard Library, and modern C++ standards. No previous programming experience is required.
book Duration 2h 29m book Authors By Slobodan Dmitrović

Book

Clean C++20: Sustainable Software Development Patterns and Best Practices
This book refers to Gain sound principles and rules for clean coding in C++, carry out test-driven development (TDD) and other topics.
book Duration 6h 40m book Authors By Stephan Roth

Book

C++ Programming Fundamentals
This book is designed to cover the basics of C++, the powerful programming language used by developers all over the world.
book Duration 2h 20m book Authors By D. Malhotra, N. Malhotra
SHOW MORE
FREE ACCESS

BOOKS INCLUDED

Book

Functional Programming in C++
Teaching developers the practical side of functional programming (FP) and the tools that C++ provides to develop software in the functional style, this in-depth guide is full of useful diagrams that help you understand FP concepts and begin to think functionally.
book Duration 5h 47m book Authors By Ivan Čukić

Book

C++ Programming in Easy Steps, Fifth Edition
Teaching you how to program in the powerful C++ language, this book makes no assumption that you have previous knowledge of any programming language so it is suitable for the beginner to programming in C++, whether you know C or not.
book Duration 2h 26m book Authors By Mike McGrath

Book

C++ Crash Course: A Fast-Paced Introduction
Designed for intermediate to advanced programmers, this fast-paced, thorough introduction cuts through the weeds to get you straight to the core of C++17, the most modern revision of the ISO standard.
book Duration 12h 12m book Authors By Josh Lospinoso

Book

C++ Standard Library Quick Reference
Interspersed with practical tips and well-chosen, clarifying examples, this quick reference is a condensed guide to the essential data structures, algorithms, and functions provided by the C++ Standard Library.
book Duration 3h 8m book Authors By Marc Gregoire, Peter Van Weert

Book

Object-Oriented Programming C++ Simplified
Assuming no prior programming experience, this in-depth guide will show you how to write sophisticated programs that take full advantages of C++'s exciting and powerful object-oriented nature.
book Duration 8h 14m book Authors By Hari Mohan Pandey

Book

Using the C++ Standard Template Libraries
Presenting a contemporary treatment that teaches the generic programming capabilities that the C++ 14 Standard Library provides, this book explains what the class and function templates available with C++ 14 do, and how to use them in a practical context.
book Duration 10h 40m book Authors By Ivor Horton

Book

C++ 14 Quick Syntax Reference, Second Edition
Without technical jargon, bloated samples, drawn out history lessons, or witty stories, this concise, handy book is a condensed code and syntax reference based on the newly updated C++ 14 release of the popular programming language.
book Duration 1h 26m book Authors By Mikael Olsson

Book

Beginning C++
Introducing the elements of the C++ standard library that provide essential support for the language syntax that is discussed, this tutorial guide will help you extend the depth and scope of your C++ expertise, although assumes no prior programming experience.
book Duration 13h 14m book Authors By Ivor Horton
SHOW MORE
FREE ACCESS

BOOKS INCLUDED

Book

Effective C: An Introduction to Professional C Programming
Using code examples that are idiomatic and straightforward, this detailed introduction will teach you how to write professional, secure, and portable C code that will stand the test of time and help strengthen the foundation of the computing world.
book Duration 4h 34m book Authors By Robert C. Seacord

Book

C Programming: A Self-Teaching Introduction
Defining key programming terms while teaching the basics of C, this thorough resource contains numerous real world programming examples showing first the algorithm, immediately followed by the program for the algorithm, and then, its output.
book Duration 3h 45m book Authors By Rajiv Chopra

Book

Computer System & Programming in C
With lucid explanations of the concepts, working programming examples, and end-of-chapter exercises, this book begins with the basics and steadily builds the pace helping the reader progress to advanced topics by the end of the book.
book Duration 2h 17m book Authors By Yashavant Kanetkar

Book

C Programming Pocket Primer
Introducing advanced beginners to C programming fundamentals, this book will teach you how to write C programs that involve various C data types, loops, conditional logic, built-in functions, custom functions, and recursion.
book Duration 3h 15m book Authors By Oswald Campesato

Book

Computer Fundamentals and Programming in C, Second Edition
Presenting case studies which demonstrate the use of C in solving mathematical as well as real-life problems, this book discusses the primary functions of compilers, linkers, and loaders, and provides an exhaustive coverage of concepts such as data types, control statements, arrays, strings, functions, pointers, structures, file systems, and command-line arguments.
book Duration 15h 30m book Authors By Manas Ghosh, Pradip Dey

Book

Low-Level Programming: C, Assembly, and Program Execution on Intel 64 Architecture
Providing a variety of optimization, debugging, and performance-gain techniques, this book explains Intel 64 architecture and teaches the latest version of the C language (C11) and assembly language from scratch.
book Duration 7h 17m book Authors By Igor Zhirkov
SHOW MORE
FREE ACCESS

BOOKS INCLUDED

Book

Let Us C: Authentic Guide to C Programming Language, 19th Edition
The new edition of this classic book has been thoroughly revamped but remains faithful to the principles that have established it as a favourite amongst students, teachers and software professionals round the world.
book Duration 4h 30m book Authors By Yashavant Kanetkar

Book

C Programming For Dummies, 2nd Edition
This book helps you get to where you want to go with C, this 2nd edition of C Programming For Dummies covers everything you need to begin writing programs, guiding you logically through the development cycle.
book Duration 5h 21m book Authors By Dan Gookin

Book

Pointers in C Programming: A Modern Approach to Memory Management, Recursive Data Structures, Strings, and Arrays
Gain a better understanding of pointers, from the basics of how pointers function at the machine level, to using them for a variety of common and advanced scenarios.
book Duration 7h 46m book Authors By Thomas Mailund

Book

Modern C for Absolute Beginners: A Friendly Introduction to the C Programming Language
Learn the C programming language easily and in a straightforward way. This book teaches the basics of C, the C Standard Library, and modern C standards. No previous programming experience is required.
book Duration 2h 43m book Authors By Slobodan Dmitrović

Book

Let Us C - 17th Edition: Authentic Guide to C PROGRAMMING Language
This book is for students, Programmers, researchers, and software developers who wish to learn the basics of C++ programming language.
book Duration 4h 57m book Authors By Yashavant Kanetkar

Book

Effective C: An Introduction to Professional C Programming
Using code examples that are idiomatic and straightforward, this detailed introduction will teach you how to write professional, secure, and portable C code that will stand the test of time and help strengthen the foundation of the computing world.
book Duration 4h 34m book Authors By Robert C. Seacord

Book

Learn C Programming from Scratch: A step-by-step methodology with problem solving approach
This C programming book is an invaluable resource for beginners and aspiring programmers who want to build a strong foundation in programming. Its clear and concise explanations, coupled with practical examples, make it perfect for those with little to no programming experience.
book Duration 5h 20m book Authors By Mohammad Saleem Mir
SHOW MORE
FREE ACCESS

BOOKS INCLUDED

Book

C++ Programming: An Object-Oriented Approach
Using a combination of thorough well-ordered explanations and a strong visual framework to make programming concepts accessible, this book prepares students to tackle the academic and professional programming challenges they will encounter down the road with confidence.
book Duration 10h 10m book Authors By Behrouz A. Forouzan, Richard F. Gilberg

Book

Pro Cryptography and Cryptanalysis with C++20: Creating and Programming Advanced Algorithms
Develop strong skills and a passion for writing cryptography algorithms and security schemes/modules using C++ 20 and its new features with this authoritative guide.
book Duration 4h 30m book Authors By Marius Iulian Mihailescu, Stefania Loredana Nita

Book

C++20 for Lazy Programmers: Quick, Easy, and Fun C++ for Beginners, Second Edition
Ready to learn programming with less effort and more fun? Then do it the lazy way! This unique book uses humor and fun that will make you eager to do the projects as you master the popular and powerful C++ language.
book Duration 7h 6m book Authors By Will Briggs

Book

C++20 Quick Syntax Reference: A Pocket Guide to the Language, APIs, and Library, Fourth Edition
This quick C++ 20 guide is a condensed code and syntax reference to the popular programming language, fully updated for C++20. It presents the essential C++20 code syntax in a well-organized format that can also be used as a handy reference.
book Duration 1h 50m book Authors By Mikael Olsson

Book

Beginning C++20: From Novice to Professional, Sixth Edition
Begin your programming journey with C++ , starting with the basics and progressing through step-by-step examples that will help you become a proficient C++ programmer.
book Duration 18h 22m book Authors By Ivor Horton, Peter Van Weert

Book

Exploring C++20: The Programmer's Introduction to C++, Third Edition
Discover everything you need to know about C++ in a logical progression of small lessons that you can work through as quickly or as slowly as you need.
book Duration 11h 18m book Authors By Ray Lischner

Book

C++20 Recipes: A Problem-Solution Approach, Second Edition
Discover the newest major features of C++20, including modules, concepts, spaceship operators, and smart pointers.
book Duration 5h 34m book Authors By Bruce Sutherland, J. Burton Browning

Book

Clean C++20: Sustainable Software Development Patterns and Best Practices
This book refers to Gain sound principles and rules for clean coding in C++, carry out test-driven development (TDD) and other topics.
book Duration 6h 40m book Authors By Stephan Roth
SHOW MORE
FREE ACCESS

BOOKS INCLUDED

Book

Professional C++, 5th Edition
This book explains case studies that include extensive, working code round out the already impressive educational material found within.
book Duration 23h 38m book Authors By Marc Gregoire

Book

Data Structure and Algorithms Using C++: A Practical Implementation
This book is intended to flow from the basic concepts of C++ to technicalities of the programming language, its approach and debugging.
book Duration 3h 1m book Authors By Pabitra Kumar Tripathy, Sachi Nandan Mohanty

Book

C++ Programming: An Object-Oriented Approach
Using a combination of thorough well-ordered explanations and a strong visual framework to make programming concepts accessible, this book prepares students to tackle the academic and professional programming challenges they will encounter down the road with confidence.
book Duration 10h 10m book Authors By Behrouz A. Forouzan, Richard F. Gilberg

Book

Beginning C++20: From Novice to Professional, Sixth Edition
Begin your programming journey with C++ , starting with the basics and progressing through step-by-step examples that will help you become a proficient C++ programmer.
book Duration 18h 22m book Authors By Ivor Horton, Peter Van Weert

Book

Options and Derivatives Programming in C++20: Algorithms and Programming Techniques for the Financial Industry, Second Edition
Written with the goal of reaching readers who need a concise, algorithms-based book, this book provides basic information through well-targeted examples and ready-to-use solutions.
book Duration 4h 37m book Authors By Carlos Oliveira
SHOW MORE
FREE ACCESS

BOOKS INCLUDED

Book

C Programming For Dummies, 2nd Edition
This book helps you get to where you want to go with C, this 2nd edition of C Programming For Dummies covers everything you need to begin writing programs, guiding you logically through the development cycle.
book Duration 5h 21m book Authors By Dan Gookin

Book

Let Us C - 17th Edition: Authentic Guide to C PROGRAMMING Language
This book is for students, Programmers, researchers, and software developers who wish to learn the basics of C++ programming language.
book Duration 4h 57m book Authors By Yashavant Kanetkar

Book

Effective C: An Introduction to Professional C Programming
Using code examples that are idiomatic and straightforward, this detailed introduction will teach you how to write professional, secure, and portable C code that will stand the test of time and help strengthen the foundation of the computing world.
book Duration 4h 34m book Authors By Robert C. Seacord

Book

C Programming Pocket Primer
Introducing advanced beginners to C programming fundamentals, this book will teach you how to write C programs that involve various C data types, loops, conditional logic, built-in functions, custom functions, and recursion.
book Duration 3h 15m book Authors By Oswald Campesato

Book

Programming for Problem-solving with C: Formulating Algorithms for Complex Problems
This book is meant for students in fields like, computer science or data analysis, seeking a strong C foundation. It can also be utilised by professional engineers, scientists, or developers looking to boost their analytical skills with C.
book Duration 4h 52m book Authors By Dr. Kamaldeep
SHOW MORE
FREE ACCESS

SKILL BENCHMARKS INCLUDED

C++ Programming Literacy (Beginner Level)
The C++ Programming Literacy benchmark will measure your ability to use if-else and switch-case statements, iterate over arrays using for loops, and use range-based for loops. You will be assessed on your skills in defining classes, instantiating objects, creating structs, using the this pointer and const member, defining constructors and destructors, implementing copy constructors, declaring nested classes, and creating and referencing namespaces. A learner who scores high on this benchmark demonstrates that they have the skills to utilize different control structures in C++, and can implement object-oriented programming (OOP) concepts such as classes, objects, constructors, destructors, pointers, and namespaces.
30m    |   30 questions
C++ Programming Awareness (Entry Level)
The C++ Programming Awareness benchmark will measure your ability to understand the basics of C++ and a good sense of why C++ language features evolved the way they did. You will be assessed on your ability to distinguish between variable declaration and initialization, initialize variables using functional, assignment, and braced syntax, and leverage the C++ Boolean type and the std::string class. You will also be evaluated on your knowledge to utilize the auto keyword to infer the type of a variable and deploy IO manipulators to correctly format data on input and output streams. A learner who scores high on this benchmark demonstrates that they have the skills necessary to understand the basic elements and features of C++ programming and can write simple programs.
15m    |   15 questions
C++ Graphics and Gaming Competency (Intermediate Level)
The C++ Graphics and Gaming Competency Benchmark will measure your ability to install SFML libraries on your local machine, work with windows in SFML, handle events in SFML, and draw graphics objects within SFML windows. You will be evaluated on your skills in working with sprites and textures in SFML, using vertex arrays to define shapes, animating objects using sprite sheets, playing sounds in an app, and developing a complete game in SFML. A learner who scores high on this benchmark demonstrates that they have the skills to use the features of SFML and create a complete gaming application.
15m    |   15 questions

SKILL BENCHMARKS INCLUDED

C Programming Awareness (Entry Level)
The C Programming Awareness benchmark will measure your ability to understand the background of C programming, the difference between C and C++ programming, and compilation of a C program. You will be assessed on your skills to use variables and constants, choose the right data type, perform input and output operations in C, and work with simple arrays. A learner who scores high on this benchmark demonstrates that they have the skills to understand the basic features and syntax of C programming and write simple C programs to perform various operations like arithmetic, logical, and relational operations.
15m    |   15 questions
C Programming Competency (Intermediate Level)
The C Programming Competency benchmark will assess your skills of how functions are defined, declared, and invoked and leveraging variable scopes and storage classes to define values, scope, and visibility. You will be measured on your skills to use referencing and dereferencing operators in C, use NULL values, leverage the equivalence between pointers and arrays, use pointer arithmetic, and return pointers from functions. You will also be evaluated on your ability to allocate memory malloc, calloc, and realloc; use pointers to structs; and avoid problems related to dangling pointers and memory leaks. A learner who scores high on this benchmark demonstrates that they have the skills to write C programs that use both library functions and user-defined functions.
27m    |   27 questions
C Programming Literacy (Beginner Level)
The C Programming Literacy benchmark will measure your ability to work with the if and if-else statements, switch-case statements, and ternary operators in C. You will be evaluated on your skills to implement while loops, for loops, do-while loops, break statements, and continue operators. A learner who scores high on this benchmark demonstrates that they have the skills to work with looping, conditional, and unconditional control structures in C.
15m    |   15 questions
C Programming Proficiency (Advanced Level)
The C Programming Proficiency benchmark will measure your ability to perform various file operations and recognize the steps for compiling a C program, including creating macros with preprocessor directives, controlling conditional compilation, and using pragmas to alter compiler settings. You will be assessed on your skills, including working with C strings using character arrays, library functions, and header files; understanding and performing type conversions; and using command-line arguments in C programs. A learner who scores high on this benchmark demonstrates that they have the necessary skills to implement file handling, perform string operations, and create macros.
20m    |   20 questions
SHOW MORE
FREE ACCESS

SKILL BENCHMARKS INCLUDED

C++ Functions Competency (Intermediate Level)
The C++ Functions Competency (Intermediate Level) benchmark measures your ability to use free functions in C++ and correctly utilize pass-by-reference semantics with const reference input arguments. You will be assessed on your skills in identifying and mitigating the dangling pointer problem, correctly overloading functions based on input arguments and const, and splitting functions across .h and .cpp files. Learners who score high on this benchmark demonstrate that they have the skills to define and use functions and implement function overloading in C++.
12m    |   12 questions

SKILL BENCHMARKS INCLUDED

C++ Data Structures Competency (Intermediate Level)
The C++ Data Structures Competency benchmark will evaluate your ability to understand how to contrast sequence and associative containers, enumerate properties, and correctly use stacks, queues, and priority queues. You will be assessed on your skills in differentiating between sequence and associative containers; leveraging STL algorithms; instantiating and using sets, multisets, maps, and multimaps; and differentiating between sorted and unsorted associative containers. A learner who scores high on this benchmark demonstrates that they have the skills to work with sequence containers, associative containers, and algorithms.
18m    |   18 questions
C++ File and Exception Handling Competency (Intermediate Level)
The C++ File and Exception Handling Competency benchmark will assess your ability to enumerate C++ file stream classes, read data using ifstream, write data using ofstream, and perform advanced file stream operations. You will be evaluated on your skills in throwing and handling exceptions using try-catch blocks, enumerating semantics and limitations of noexcept, and mitigating problems related to exceptions thrown during object construction. A learner who scores high on this benchmark demonstrates that they have the skills to work with File systems in C++ and practice the right methodology to handle exceptions in a program.
25m    |   25 questions
C++ Functional Programming Proficiency (Advanced Level)
The C++ Functional Programming Proficiency benchmark will measure your ability 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. You will be assessed on your skills in defining and invoking a lambda function, performing context capture by value and by reference, and defining closures inside class methods. A learner who scores high on this benchmark demonstrates that they have the skills to define and use first-class functions and use lambdas and closures.
15m    |   15 questions
C++ Smart Pointers, Overloading, and Templates Proficiency (Advanced Level)
The C++ Smart Pointers, Overloading, and Templates Proficiency benchmark will measure your ability to understand operator overloading and implement overloading for arithmetic and relational operators, stream operators, assignment operators, as well as use the copy-and-swap idiom. You will be assessed on your skills in recognizing how to use function and class templates and implement a move constructor and move assignment operator. A learner who scores high on this benchmark demonstrates that they have the skills to overload operators and use templates in C++.
30m    |   30 questions
C++ Inheritance and Polymorphism Competency (Intermediate Level)
The C++ Inheritance and Polymorphism Competency benchmark will evaluate your ability to understand how to use inheritance for is-a relationships and how to identify uses for private inheritance. You will be assessed on your skills in enumerating the order of constructor/destructor invocation in inheritance hierarchies; recognizing and working with polymorphism, abstract classes, and multiple inheritance; and outlining the use of concepts, including name hiding, static/dynamic dispatch, runtime polymorphism, virtual functions, and covariance. A learner who scores high on this benchmark demonstrates that they have the skills to recognize and implement the key concepts around inheritance and polymorphism.
25m    |   25 questions
C++ Pointers Competency (Intermediate Level)
The C++ Pointers Competency (Intermediate Level) benchmark measures your ability to employ nullptr, define and use pointers for STL containers, and differentiate between malloc/free and new/delete, new/delete and new[]/delete[], and const pointers and pointers to const. You will be assessed on your skills in correctly using smart pointer objects, leveraging RAII to use various pointers and references, and correctly using const references. Learners who score high on this benchmark demonstrate that they have the skills to define and use pointers and references.
21m    |   21 questions
SHOW MORE
FREE ACCESS

YOU MIGHT ALSO LIKE

Rating 5.0 of 2 users Rating 5.0 of 2 users (2)
Rating 4.5 of 53 users Rating 4.5 of 53 users (53)