
Explore C++ for beginners, from setting up development environments and writing hello world to mastering variables, operators, control flow, arrays, pointers, references, and advanced topics like namespaces and casting.
Learn basics: set up environment and explore c and c++. Declare and initialize variables, use operators, and build a hello world program that reads a and b and computes expressions.
Explore the evolution of programming languages from machine code to high level languages. Compare machine language, assembly language, and high level languages, and learn how compilers and interpreters translate code.
Install an integrated development environment (IDE) with a code editor, compiler, and linker; explore free options like Visual Studio Community 2017, Visual Studio Code, and Code Blocks.
Trace the history of C and C++, from 1972's C by Dennis Ritchie at Bell Labs to modern C++ with object‑oriented features and game engine applications.
Create a new Visual Studio 2017 console project and write a hello world program in C++ using iostream and cout, then build and run to see the executable.
Explore how a simple hello world is compiled and linked, from editing in the code editor to producing the hello world executable, via object files and the linker.
Understand build configurations in Visual Studio, including debug and release for x86, their impact on debugging, optimization, and output folders, and how to disable compiler extensions for pure C++ standards.
Learn how the cpp compiler reports errors and warnings. It shows line numbers and descriptive messages, and you can adjust warning levels and treat warnings as errors with preprocessor directives.
Master basic data handling in C++ by exploring variables, memory, and data types such as int, float, and double. Understand instantiation, runtime vs compile-time, and simple examples like hello world.
Explore the different ways to assign variables in modern C++, including copy initialization, direct initialization, and uniform initialization, and understand when to use each.
Explore the iostream library in C++, using cout for output and cin for input. Learn insertion and extraction operators, and print with std::endl or backslash n, while initializing variables.
Follow variable initialization guidelines in C++ by examining uninitialized local variables, undefined behavior, and why uniform initialization prevents garbage values and unpredictable results.
Learn modern C++17 variable naming conventions: avoid reserved keywords, follow identifier rules, choose camel case or underscores, and write readable, concise names.
Explore unary, binary, and ternary operators in C++, identify operands and operators, and examine literals, string literals, and basic operator concepts with practical examples.
Explore how expressions in C++ combine literals, variables, and operators to yield a single value for initialization, and print results using std::cout.
Explore the syntax, declaration, and use of functions in c plus plus, including value-returning and void forms. Understand parameters, arguments, and local variable scope to effectively use functions.
Write your first simple C++ program that reads two integers a and b, initializes them, and computes and prints (a+b)^2, (a-b)^2, a^3+b^3, and a^3-b^3 using cout and cin.
Define and reuse user defined functions in C++, declare and implement them outside main, and understand function calls, the caller, and return types like void and int.
Convert a void add numbers function into a value-returning function in C++, returning int and letting main print the result with std::cout.
Explore function parameters and arguments in C++, learn how return values can be passed as arguments, and understand the order of evaluation for modular coding.
Explore the lifetime and scope of local variables, from their birth inside a c++ function to destruction at the end of the block, and how compile-time and runtime govern visibility.
Discover how functions improve organization, readability, and reusability, reduce complexity with modular, self-contained units, and apply guidelines like turning repeated statements into functions and one-task design.
Explore code file organization and formatting in c++, including whitespaces, forward declarations, multi-file cpp projects, the std namespace, preprocessor directives, header files, and include guards.
Explain how whitespace is ignored by the C++ compiler, with string literals as an exception, and outline common formatting styles, indentation practices, and Visual Studio auto-formatting.
Learn how forward declarations and function prototypes guarantee the compiler knows about functions before use, avoiding identifier not found errors and distinguishing declarations from definitions under the one definition rule.
Learn how to manage multiple cpp files in a Visual Studio project, organize source and header folders, and use forward declarations to connect main.cpp with other cpp files.
Explore how identifier names cause collisions in C++ and how the linker detects duplicate functions, with examples of cross-file definitions and the role of local scope.
Explore the std namespace and how C++ uses a dedicated namespace to avoid naming conflicts, with examples of std::cout and std::cin, plus the trade-offs of using the using directive.
Discover how the C++ preprocessor transforms code before compilation. Learn hash include, macros, object-like and function-like macros, and conditional compilation with ifdef, ifndef, and if0.
Understand header files, including dot h and the separation of declarations in headers from definitions in cpp. Explore include semantics, the one-definition rule, and best header practices.
Learn how header guards and include guards prevent duplicates when header files are included, addressing the one-definition rule, using #ifndef / #define / #endif, or #pragma once.
Learn to structure a C++ project with header files for binomial square and cube, driven by main.cpp, that takes two inputs and prints results using a print output module.
Explore integers, their types, and floating point variables for precision in C++. Understand scientific notation, the character data type, and constants with const and const expr for symbolic constants.
Explore C++ integers, their five basic types, signed versus unsigned, and how memory size affects range. Learn overflow behavior, integer division, and the size of operator returning size_t.
Explore floating point variables in C++, including float, double, and long double sizes and precision, scientific notation, rounding errors, and NaN and Inf handling.
Learn how the C++ char datatype maps to ASCII, print and input characters, cast between char and int with static_cast, and explore escape sequences and different character types including Unicode.
Learn how const and constexpr define compile-time and runtime constants, replace macros with symbolic constants, and apply Newton's second law to a force calculation.
Master program logic in C++ by using if, else if, and else to control flow, then explore loops (while, do while, for) and switch case statements.
Demonstrates how if else statements drive the flow of logic in C++ by evaluating conditions, executing blocks, and using else if and else for multiple conditions.
Explore c++ loops, including while, do while, and for loops, with range-based for loops and practical examples like countdowns and user input, highlighting syntax, conditions, increments, and avoiding infinite loops.
Explore the switch case statement as a compact alternative to if and else for fixed values. See how case, default, and break control flow with practical examples, including enumeration usage.
Explore arrays in C++, from declaring and initializing zero-indexed arrays to accessing elements, working with multi-dimensional arrays, looping over them, and passing arrays to functions by address.
Learn how the address (ampersand) and dereferencing operators work, declare and initialize pointers, and explore their relationships with arrays, const, and pointers to pointers, including memory addresses and pointer arithmetic.
Explore pointers in C and C++ as a memory access tool. Use the address-of and dereference operators to access or modify the value stored at a pointer's address.
Explore how int, char, and double pointers store addresses, dereference to modify variables, and how pointers relate to arrays in C++, with practical examples of pointer declarations and assignments.
Compare arrays and pointers in c++. Declare an int array and an array pointer, then dereference and modify elements using the offset operator to access specific indices.
Master pointer basics by using the address of and dereferencing to access array elements, perform pointer arithmetic with array pointers, and understand valid pointer initialization and assignments.
Explore pointer arithmetic and constant access in C++. Learn how strings relate to pointers, and how to use pointers to pointers and pointers to functions.
Delve into C++ from basics to advanced topics, covering enumerations, enum classes, structs, dynamic memory allocation, for each loops, vectors, arrays, stack and heap, and classes, inheritance, and polymorphism.
Learn how to define and use enums in C++, including enum syntax, enumerators, trailing comma rules, naming conventions, and printing or input via switch and static_cast.
Continue the c++ enumeration chapter by examining allocations and forward declarations, and show how header-defined enums replace magic numbers with descriptive file result values for readability.
Learn how enum classes in C++11 enforce strong typing and scope, preventing cross-enum comparisons, and explore accessing, comparing, and casting their underlying values.
Explore typedef and type aliases to create readable names for existing data types. See how to declare aliases, adopt the t-suffix convention, and switch underlying types with minimal changes.
Learn how to define and use structs in C++, group related variables into a ship struct, access members with the dot operator, and initialize with initializer lists or uniform initialization.
Explore how to pass and return structs in C++, including by value, nested structs like employee and company, and vectors; understand size, padding, and cross-file declarations.
explore how the auto keyword enables type inference in modern c++11, replacing explicit types for initialized variables and guiding return type deduction, while noting limits for function parameters.
Explore dynamic memory allocation in C++, using the heap with new and delete, manage pointers, avoid memory leaks and dangling pointers, and use null pointers safely.
Learn how pointers and references interact with structs using a weapon struct with rate of fire and max ammo, and access members via dot, reference, or arrow operator.
The lecture introduces the for each loop, a range-based loop in C++11, showing safe iteration of arrays and vectors with auto, references, and const, compared to traditional for loops.
Master std::vector, a dynamic array with automatic memory management that removes manual allocation. Initialize, query size, resize, and iterate, including boolean vectors, and compare with built-in arrays.
Explore std::array in C++11, learn how it fixes fixed arrays, prevents decay to pointers, and provides size(), at(), begin(), end(), and safe bounds checking compared to raw arrays.
Explore how C++ functions return values by value, by address, and by reference; learn safety, performance, and when to use struct, tuple, or structured bindings for multiple values.
Explore how the stack and heap memory segments organize a program, how the call stack tracks active functions, how heap allocation via new works, and how stack overflow can occur.
Explore recursive functions through a practical countdown timer, termination conditions, and call stack behavior. Analyze push and pop order, base cases, and how sums and factorials illustrate recursion.
Learn object oriented programming in C++, covering classes, constructors, variable initialization, and the scope operator, with public private protected access and struct and union concepts.
Learn about c++ constructors, initialize class members with default and overloaded constructors, and calculate rectangle area. Compare functional, assignment, and uniform initialization and use member initialization lists.
Explore pointers to classes with new and delete, memory management, and dot and arrow operators, using a rectangle example that calculates area, default access rules for class, struct, and union.
Master overloading operators for C++ classes, including arithmetic and insertion operators, and apply the this keyword. Explore static members, const member functions, and the basics of class templates.
Explore const member functions and const objects in C++, learn how to declare and use const functions, and master class templates, including a value pair template and template specialization.
Explore special member functions in C++, including default, copy, and move constructors and assignments, plus destructors, with focus on deep vs shallow copying and memory cleanup.
Explore copy and move semantics in C++, implement deep copy in copy assignment, understand move constructors, rvalue references, unnamed temporaries, and the role of default and delete.
Explore how friend functions and friend classes grant access to private and protected members, using examples with rectangle and square, including forward declaration and a convert and duplicate workflow.
Explore how C++ inheritance works with a polygon base class and rectangle and triangle derived classes, including public protected private inheritance, access to width and height, and area calculations.
Explore multiple inheritance in C++ by combining polygon with an output class to create rectangle and triangle, sharing width, height, and area calculations while printing results.
Explore polymorphism in c++ by using base and derived classes, virtual functions, and base-class pointers to compute areas for rectangle and triangle.
Explore polymorphism in C++, focusing on abstract base classes and pure virtual functions, and learn how to use pointers and dynamic memory to resolve virtual calls.
Explore using the C++ graphics library to create on-screen scenery, focusing on coordinate placement, color, and GUI basics for beginners, including plotting objects and understanding function parameters.
A beginner-friendly project using the C++ graphics library to build a scenery with a rising sun, mountains, a house, and a tree, with options to evolve into dynamic GUI scenes.
Set up the graphics driver and graphics mode in a C++ project by including graphics.h and initializing gd and gm with initgraph, providing the PGI folder path.
Initialize the graphics library, set brown color, and draw mountains by plotting successive line segments to form a triangular range while keeping fills within boundaries.
Learn to draw mountains in c++ by using a for loop to plot alternating lines, then color each triangle with flood fill and add a sun via an arc.
Plot sun rays around an arc by iteratively adjusting line coordinates with the line function, tuning center coordinates, radius, and start and end values to shape each ray.
Plot the sun and house using rectangle and line functions, adjust coordinates through trial and error, and add a roof, windows, and a door.
Plot the house features by calculating midpoints and coordinates. Draw the door and windows with line and rectangle functions, using the graphics library to position elements precisely.
Plot two trees with a brown trunk using a rectangle and green triangular foliage. Adjust coordinates and duplicate the same functions to add a second tree and a pond.
Draw the pond with the ellipse function, specifying center coordinates, start and end angles, width and height, then use the line function to draw green grass around it.
Continue plotting the grass on both sides of the pond, adjusting the coordinates along the x and y axes, and bordering the scenery while preparing to add color.
Plot pandemic statistics for ten countries with a C++ graphics bar graph, 50 calibrations for axis scaling, and continuous input loops.
Explains how to set up a C++ graphics project in turbo c, including headers iostream.h, conio.h, graphics.h, and initializing graphics with detect and initgraph via the PGI path.
Configure a graphics-based C++ program to set font, viewport, and clipping, then collect ten country names and populations using 2D and 1D arrays with a for loop.
Accept country names and populations into an array, print each country with its population, determine the maximum for calibrating the y axis, and plot using max x and max y.
Plot the x and y axes using the line function from graphics.h, calculating dynamic start coordinates and labeling axes with out text x y to reserve space for country names.
Plot country names on the x axis by calibrating axes and printing labels at coordinates. Use a fixed 60-pixel gap and a text function to display ten country labels.
Discover how to partition the y axis in a C++ graph by deriving partition size from the maximum population, mapping calibrations, and displaying labels with sprintf.
Map each country's population to a bar graph by iterating with a for loop, mapping via partitions and calibrations, and rendering rectangles to the screen.
Plot and render bars as rectangles by calculating x and y coordinates, bar thickness, and gaps, using a do-while loop to continue with input from stdio.h's get function.
Test your C++ code by compiling and running with real country population data, accepting country names, and plotting population graphs interactively.
Learn to draw bar, pie, and line charts in C++ using graphics commands and a Cartesian coordinate system for sales management dashboards.
Draw a bar chart in c++ by entering yearly sales data using printf and scanf, including header files and simple i/o in turbo c++.
Learn to draw a bar chart in c++ graphics by initializing graphics mode, computing pixel coordinates, scaling data to bar heights, and drawing axes using line commands and colored bars.
Learn to draw a bar chart in graphics mode using the bar command, calculating bar heights from data, setting red fill color, and annotating bars with text via integer-to-string conversion.
Explore building a multi-year bar chart in graphics mode, converting integers to text and printing year labels while applying color coding for 1996–1999 sales data.
Run the program to compile and link the C graphics bar chart, then enter data values like 60, 80, 100, and 120 to display the 1996–1999 bars.
Learn to draw a pie chart in C++ using graphics mode, building on bar chart groundwork and including graphics initialization, sales data input, and pie slice geometry.
Draw a pie chart in C++ graphics by converting four years of data (1996–1999) into start and end angles that sum to 360, then render colored slices counterclockwise.
Draw organograms on the screen using C++ graphics commands. Explore the four organogram types: flat, divisional, functional, and matrix, and understand their structures.
Learn how inheritance in C++ lets derived classes inherit properties from a base class, using public, protected, and private modes; this reduces duplication and increases reusability.
Open the C++ IDE, include stdio, conio.h, iostream, graphics.h, and initialize graphics mode. Define a base class for drawing an organogram that outputs lines, squares, circles, and text at coordinates.
Define a base class Organology with a constructor and output function, then derive a subclass to adjust line pixels and manage screen text rendering.
Develop derived classes from the base Organology class using public inheritance, implementing draw and output to render squares, rectangles, lines, and circles in a graphics mode and restore CRT mode.
Define horizontal and vertical line classes derived from a base organogram class, implement draw functions for lines, square, and circle, and render text in a graphics-based organogram program.
Call the circle draw function and render a divisional organogram with the manager at the top, then display SUV and sedan design, production, and sales branches.
Run the program in the C++ IDE to compile and verify the organogram, detailing a divisional structure with two products and product-wise departments.
Draw a typical organogram in C++, using circles, rectangles, and lines, positioning roles like CEO, production manager, and sales manager with pixel coordinates.
Define a diamond class derived from the organogram base class and implement drawing routines to render a flowchart with an isosceles triangle and a diamond shape on screen.
Develop a practice program to draw a line and a flowchart on screen using derived line classes with a draw function.
Run the program to draw a flowchart and organogram types from a base Organology class to derived shapes. Explore how flowchart visuals of rectangles, diamonds, and T junctions support development.
Course Introduction
This course is designed to take you on a complete journey through the world of C++, starting from the absolute basics and progressing through to advanced topics and hands-on projects. Whether you're new to programming or looking to deepen your C++ knowledge, this course is structured to equip you with the skills and confidence to tackle real-world coding challenges. You'll explore C++ fundamentals, master intermediate and advanced concepts, and gain practical experience by building exciting projects like graphical applications and data visualizations.
Section-wise Breakdown
Section 1: Beginners C++ - C++ Fundamentals
In the first section, we start with the basics of C++ programming. You'll learn about the origins of C++ and the foundational principles of programming languages. We’ll guide you through setting up your coding environment, writing your first "Hello, World!" program, and understanding what's happening behind the scenes. You'll then explore data types, variables, and essential operators, along with best practices for naming conventions and code formatting. By the end of this section, you'll be comfortable writing basic C++ programs, using control flow statements like loops and conditionals, and working with arrays and pointers.
Section 2: Intermediate to Advanced C++
Building on the fundamentals, this section delves into more complex concepts. You'll learn about enumerations, type aliases, and data structures like structs and vectors. We’ll explore dynamic memory allocation, understand the differences between stack and heap memory, and dive into object-oriented programming (OOP) with classes, constructors, and inheritance. Advanced topics like polymorphism, recursion, and function overloading will also be covered. This section is designed to solidify your understanding of C++ and prepare you for more advanced applications.
Section 3: C++ Project #1 - Graphics: Creating A Scenery
Put your skills to the test with a fun and engaging project. In this section, you'll use the C++ graphics library to create a detailed scenery. You'll learn to draw mountains, plot sun rays, and build structures like houses, trees, and ponds. This project emphasizes the use of loops, functions, and conditional statements to create visually appealing graphical outputs, helping you develop a solid understanding of C++ graphics programming.
Section 4: C++ Project #2 - Pandemic Statistics Graph Plotting
This section focuses on data visualization using C++. You'll build a program to plot population statistics of different countries on a graph. From setting up the graphics environment to mapping data on a chart, you’ll gain hands-on experience in handling real-world data. This project covers accepting user inputs, drawing axes, and creating data plots, which are valuable skills for data analysis and visualization.
Section 5: C++ Project #3 - Creating Sales Charts With Data Entry
Learn to represent data graphically by creating sales charts. You'll work on building bar charts and pie charts from scratch using C++. This section covers everything from data entry to rendering colorful charts, enhancing your ability to visualize data effectively. By the end of this project, you'll have a complete understanding of how to use C++ for data-driven applications.
Section 6: C++ Project #4 - Organogram and Flowchart Application
In the final section, you'll dive into a project that involves creating a complex organogram using inheritance and advanced class concepts. You'll develop a program that structures an organizational chart, complete with base and derived classes, and visualize it using flowcharts. This project will test your knowledge of OOP, inheritance, and class hierarchies, bringing all the concepts you've learned throughout the course into one comprehensive application.
Course Conclusion
By the end of this course, you will have a solid foundation in C++ programming, ranging from fundamental concepts to advanced techniques. With hands-on experience in graphical projects and data visualization, you'll be well-prepared to tackle real-world programming challenges. Whether you're aiming for a career in software development or looking to enhance your coding skills, this course offers everything you need to succeed in C++.