C++ Tutorial for Beginners - Learn C++ in 1 Hour

Estimated read time: 1:20

    Learn to use AI like a Pro

    Get the latest AI workflows to boost your productivity and business performance, delivered weekly by expert consultants. Enjoy step-by-step guides, weekly Q&A sessions, and full access to our AI workflow archive.

    Canva Logo
    Claude AI Logo
    Google Gemini Logo
    HeyGen Logo
    Hugging Face Logo
    Microsoft Logo
    OpenAI Logo
    Zapier Logo
    Canva Logo
    Claude AI Logo
    Google Gemini Logo
    HeyGen Logo
    Hugging Face Logo
    Microsoft Logo
    OpenAI Logo
    Zapier Logo

    Summary

    In this informative and engaging one-hour tutorial by Mosh Hamadani, you will delve into the basics and essentials of C++ programming. Mosh takes you through the foundational aspects of C++, starting from the absolute basics and gradually leading you to understand more advanced concepts. Whether you're a complete beginner or someone looking to refresh your knowledge, this course is tailored to ensure you can write C++ code with confidence. With practical examples, exercises, and an engaging tone throughout, Mosh aims to transform you from a novice to a proficient coder in no time.

      Highlights

      • Mosh introduces the basics of C++ and its applications in real-world tech industries. 🌍
      • He emphasizes the benefits of learning C++ for career opportunities and salary prospects. πŸ’΅
      • Step-by-step guidance on setting up a development environment for C++ coding. πŸ› οΈ
      • Detailed explanation of C++ syntax, data types, and operators. πŸ‘©β€πŸ’»
      • Interactive exercises guide you through writing your first C++ programs. πŸ“
      • Learn to use integrated development environments (IDEs) for efficient coding. πŸ’»
      • A walkthrough on variables, constants, operators, and expressions in C++. βž•βž–
      • Mosh illustrates the importance of understanding binary and hexadecimal number systems. πŸ”’

      Key Takeaways

      • C++ is a high-performance programming language suitable for critical applications like video games and operating systems. πŸš€
      • Learning C++ opens up numerous job opportunities with high salaries in the tech industry. πŸ’Ό
      • Master C++ language syntax and the Standard Library (STL) to improve your coding skills. πŸ“š
      • A good understanding of C++ enhances your ability to learn other programming languages easily. 🌐
      • The course is structured into parts, with each focusing on different levels from basic to advanced. πŸ“ˆ

      Overview

      Mosh Hamadani, a seasoned software engineer, welcomes beginners to explore the world of C++ through this structured one-hour tutorial. The focus is on making C++ approachable and comprehensive, offering insights into the language’s application in industry-leading companies.

        The tutorial starts by setting up your development environment, ensuring even those without prior programming experience can easily follow along. Mosh then delves into understanding C++ syntax, from writing your first program to understanding complex data types.

          Throughout the tutorial, exercises are incorporated to reinforce learning and skills. Mosh also highlights the current relevance of C++ in various sectors, preparing learners not just for the tutorial, but for real-world application and future learning endeavors.

            Chapters

            • 00:00 - 00:30: Introduction to C++ Course The chapter, 'Introduction to C++ Course', provides an overview of the comprehensive course designed to teach C++ programming. It emphasizes that the course will cover everything from basic to advanced concepts, aiming to equip learners with the confidence to write C++ code proficiently. It is tailored for beginners with no prior experience in C++ or programming, promising an easy-to-follow, well-organized, and practical learning journey from 'Zero to Hero'.
            • 00:30 - 01:00: Introduction of Instructor The chapter introduces the instructor, Mosh Hamedani, a software engineer with over 20 years of experience. He mentions that he has taught millions how to code via his YouTube channel and online school, codewith.com. He encourages new viewers to subscribe to his channel, as he frequently uploads new video content.
            • 01:00 - 03:00: Introduction to C++ Language In the chapter 'Introduction to C++ Language', the discussion centers on the significance and wide-ranging applications of the C++ programming language. It is highlighted as a highly popular language used for creating performance-critical applications such as video games, device drivers, web browsers, servers, and operating systems. These attributes make it the preferred choice for major corporations like Adobe, Google, Microsoft, Netflix, as well as government agencies such as NASA. Moreover, the language evolves with new updates rolled out every three years, ensuring its relevance and efficiency in cutting-edge technology.
            • 03:00 - 03:30: Versions and Relevance of C++ The chapter discusses the current versions of C++, highlighting that the latest version at the time of the transcript is C++20, with a new version anticipated next year. It addresses claims by some, like renowned developer John Smith, that C++ is becoming irrelevant due to newer languages like Java or C#. The chapter defends the relevance of C++, stating it remains one of the fastest and most efficient languages available, making it an excellent choice for applications requiring speed and efficient memory usage.
            • 03:30 - 05:30: Basics of C++ Language C++ is favored over C and Java for certain advantages it provides.
            • 05:30 - 09:00: Integrated Development Environments (IDEs) for C++ The chapter titled 'Integrated Development Environments (IDEs) for C++' provides an overview of key components necessary for mastering C++. It emphasizes the importance of learning both the language's syntax and the C++ Standard Library (STL). The standard library is a comprehensive collection of pre-written code, which includes useful data structures, aiding in efficient application development.
            • 09:00 - 15:00: Introduction to C++ Programming The chapter discusses the importance of reusing existing C++ code, particularly through the use of maps and algorithms for searching and sorting data. It emphasizes the efficiency gained by utilizing the C++ standard library rather than creating functionalities from scratch. The course offers an exploration of major functionalities within the standard library, although it acknowledges the vastness of the library and suggests further reading for a deeper understanding. It also mentions the challenging nature of learning C++.
            • 15:00 - 25:30: Basic C++ Program Execution In this chapter, the author emphasizes that learning C++ doesn't require mastering every feature of the language, similar to using a TV without knowing all its functionalities. The course is designed to guide learners through C++ step-by-step, enabling them to write impressive programs while learning. Moreover, the chapter highlights the inclusion of various exercises to reinforce understanding and retention of concepts.
            • 25:30 - 28:30: Customizing IDE Themes The chapter discusses the tools required to write C++ programs, specifically focusing on the use of Integrated Development Environments (IDEs). It highlights the importance of using an IDE which includes an editor for writing code, and assures that by following along the course, one can gain confidence in writing C++ code.
            • 28:30 - 31:00: Course Structure Overview The chapter provides an overview of the available build and debugging tools for developers. It highlights Microsoft's Visual Studio Community Edition as a top choice for Windows users, noting that it is available for free. For Mac users, xcode is suggested as a suitable alternative, available through the App Store. Additionally, cion is mentioned as a cross-platform option, compatible with Windows, Mac, and Linux, which can be tried for free for 30 days.
            • 31:00 - 40:30: Beginner C++ Concepts The chapter focuses on introducing beginner C++ programming concepts, emphasizing that the choice of Integrated Development Environment (IDE) is flexible. C Lion is used for demonstration, but any IDE can be chosen. Absolute beginners with no prior coding experience are encouraged to download the free version of C Lion for practice.
            • 40:30 - 50:00: Intermediate C++ Concepts The chapter on 'Intermediate C++ Concepts' discusses the installation of JetBrains software for programming with C++. It highlights the importance of selecting the correct download based on the user's operating system and processor type, specifically for Mac users who need to choose between Intel and Apple Silicon builds. This ensures compatibility and optimal performance when using the development tools. Additionally, it suggests exploring free alternatives to JetBrains software if needed.
            • 50:00 - 57:00: Advanced C++ Concepts In this chapter titled 'Advanced C++ Concepts,' the focus is on the significant performance differences when implementing advanced C++ features. The chapter transitions to practical application by providing instructions on setting up a development environment using C Lion. Initial guidance involves starting a trial version of C Lion and logging into a JetBrains account, which are prerequisites for following along with subsequent programming lessons.
            • 57:00 - 59:00: Course Conclusion The chapter covers the conclusion of a course, detailing final steps and encouraging users to take action. It includes a practical demonstration of creating a new account, which is described as a quick process, taking only a minute or two to complete. The speaker logs in with their account and proceeds to start a trial on a platform. The transcript also guides users through starting a new project, emphasizing how to specify its location. For this example, a project named 'hello world' is created, stored on a Mac under a specified user path. The chapter serves as a hands-on completion of tasks introduced in the course.

            C++ Tutorial for Beginners - Learn C++ in 1 Hour Transcription

            • 00:00 - 00:30 welcome to the ultimate C++ course in this course you're going to learn everything you need to know about C++ from the basics to more advanced concepts so by the end of this course you'll be able to write C++ code with confidence if you're looking for a comprehensive easy to follow well organized and practical course that takes you from Zero to Hero this is the right C++ course for you you don't need any prior knowledge of C++ or programming in general everything you need to know about C++ is in one place
            • 00:30 - 01:00 so you don't need to jump back and forth between random tutorials my name is msh hamadani I'm a software engineer with over 20 years of experience and I've taught millions of people how to code through this Channel and my online school code with.com if you're new here be sure to subscribe as I upload new videos all the time now let's jump in and get [Music] started before we start coding let's
            • 01:00 - 01:30 spend a couple of minutes and talk about C++ what you can do with it and how to master it C++ is one of the most popular programming languages in the world and is the language of choice for building performance critical applications video games device drivers web browsers servers operating systems and so on that's why it's used by large companies like Adobe Google Microsoft Netflix and even government agencies like NASA just to name a few every 3 years we get a new
            • 01:30 - 02:00 version of C++ and the latest version at this time is version 20 the next version is coming out next year now there are people like our famous superstar developer John Smith who think that C++ is no longer relevant because of the newer languages like Java or C that is not true C++ is still one of the fastest and most efficient languages available so if you want to build an application that needs to be fast and use memory efficiently C ++ is a great choice this
            • 02:00 - 02:30 is an advantage that it has over languages like C and Java C++ is also one of the first languages often taught to computer science or software engineering students because it has influenced many programming languages like C Java JavaScript typescript Dart and so on so if you're looking for a job as a software engineer learning s++ is a great investment and opens a lot of doors for you according to indeed.com the average salary of a C++ programmer
            • 02:30 - 03:00 in the US is just over $170,000 a year now to master C++ there are two things you need to learn one is the C++ language itself meaning the syntax or the grammar of this language the second thing you need to learn is the C++ standard library or STL which is a collection of pre-written C++ code that provides functionality that is required by many applications examples are data structures like list lists and
            • 03:00 - 03:30 maps and algorithms for searching and sorting data these functions are required in almost every application so instead of us creating all this functionality from scratch every single time we can reuse some of the C++ code in this library to quickly build applications in this course we'll explore major functionalities in the standard library but the standard library is huge so we'll only scratch a surface if you want to learn more there are books specifically written on this topic now a lot of people find C++ a bit
            • 03:30 - 04:00 extensive and intimidating but in reality you don't need to learn all of C++ to be able to write substantial programs for the same reason you don't need to learn every feature your TV provides just to use and enjoy it so in this course we're going to explore C++ step by step and as we go I'm going to show you how you can write some really cool programs as you're learning C++ plus I'm going to give you plenty of exercises to help you better understand and remember the concept STS then you
            • 04:00 - 04:30 will see that C++ is not really that difficult so if you follow along by the end of this course you'll be able to write C++ code with confidence all right next we're going to talk about the tools you need to write C++ [Music] programs to create C++ programs we use an integrated development environment or IDE which is basically an application that contains an editor for writing code
            • 04:30 - 05:00 as well as build and debugging tools now there are so many different ideas out there some of them are free the others are commercial but the top three ones are Microsoft Visual Studio for Windows the Community Edition is free you can get it from the link on the screen there is also a Mac version but the one on the Mac is not really that great for Mac you can use xcode which you can get from the App Store we also have cion which is crossplatform so it runs on Windows Mac and Linux you can trade for free for 30
            • 05:00 - 05:30 days but then it requires a license if you don't want to pay for a license you can use one of the free Alternatives again there's so many different ideas available for creating C++ programs in this course I'm going to use C lion but you don't have to use it to follow along you can use any tool you prefer because our Focus here is not on tooling it's on the C++ language itself now if you're an absolute beginner and you have never coded before I recommend you to download the free version of celan so you can
            • 05:30 - 06:00 easily follow along and then later you can either get a license or use one of the free Alternatives so head over to Jet brains.com celion download again you can see we have versions for Windows Mac OS and Linux just note that if you're on Mac make sure to download The Right DMG because here we have two different builds one is for Intel the other is for apple silicon so depending on the type of processor that your Mac uses make sure to download The Right DMG because
            • 06:00 - 06:30 the difference in performance is significant all right so go ahead and install this in the next lesson we're going to create our first C++ program [Music] together so the first time you open C lion you're going to see this popup box for activating your license for now just select start trial now you need to log into your jet Brands account so over here you can either sign in or
            • 06:30 - 07:00 create a new account it's really simple it's only going to take a minute or two so I'm going to sign in with my account good now back to cion we can start our trial now on this page we're going to click on new project now on the top we can specify the location of this project so on my Mac it's going to be on users SL my name/ celan project I'm going to call this project hello world all in one
            • 07:00 - 07:30 word without any spaces okay now over here we can specify the C++ language standard so by default version 14 is selected but we can change that to a higher version like 20 or 23 now because 23 is not official yet I would suggest you to go with 20 good now let's create this project all right here's our first C++ program written in a file called
            • 07:30 - 08:00 main.cpp if you accidentally close it you can easily find it in the project window so expand this folder and here is main.cpp now we have another file in this project called cmakelists.txt we don't need that so let's close it from here now we have the same concept in other IDs like Visual Studio or xcode so we have a project and that project contains a file that is the main file of our program now let's close this window I'm going to delete all this
            • 08:00 - 08:30 code because we're going to write it from scratch so you understand how everything works all right let's start with a metaphor think of your TV your TV has several functions it has functions for changing the channel controlling the volume and so on by the same token a C++ program consists of tens or hundreds or thousands of functions each serving a purpose now we have a special function here called main which is the entry point to our program this this is like the power button of a TV okay now note
            • 08:30 - 09:00 that C++ is a case sensitive language so it's sensitive to lowercase and uppercase letters so make sure to type this exactly as I show you so if you type a capital M here this is going to have a different meaning okay so we're defining a function now before the function name we should specify the type of value it's going to return this main function should return a value of type int which is short for integer and that represents a whole number like 1 2 3 4
            • 09:00 - 09:30 and so on so when we run our program the operating system like Windows or Mac OS is going to execute this function and the value that this function returns tells the operating system if our program terminated successfully or not okay so here we have int followed by whitespace and then the name of the function now whites spaces in C++ are often ignored so whether we have one or 10 spaces it doesn't really matter but in terms of formatting our code it's
            • 09:30 - 10:00 better to go with one space because we want to format this code professionally just like how we write an article you want to format our code just like a published article okay now after the function name we type a pair of parentheses and inside the parenthesis we can specify the parameters of this function so a function can have zero or more parameters for now let's not worry about them we'll talk about them later then we type a space again for proper formatting followed by a pair of braces
            • 10:00 - 10:30 now inside the braces we can type the code for this function so whatever we type here will be executed when the operating system executes our main function now once again in terms of formatting there are two schools of thought for adding the braces some people like to add the left brace on the same line as the function the other people like to put the left brace on a NE line there's really no right or wrong here so whatever you prefer just stick to that and make sure your code is
            • 10:30 - 11:00 consistent in this course I'm going to put the left brace on the same line where we Define a function okay now in this function we want to write code to print something on the screen and for that we're going to use the C++ standard Library so earlier I told you that the standard Library provides a bunch of capabilities that we need in almost every application so on the top we type hashtag include and in angle brackets we
            • 11:00 - 11:30 specify the name of one of the files in the standard library that is IO stream which is short for input output stream in this file we have capabilities for printing something on the screen or getting input from the user so just like a supermarket has different sections the standard Library also has different files each serving a purpose now as we go through the course you will learn about the other files in the standard Library Okay so back to our main
            • 11:30 - 12:00 function now here we type STD that is short for standard library and this is like a bucket or a container for the features that are currently available to us so the features we have imported on the top okay so if you type double colons we can see all these features now there are a ton of features here don't worry about any of them in this lesson we're going to use see out that is short for character out some people think this is short for console out that is not correct correct so using this object we
            • 12:00 - 12:30 can output one or more characters on the screen so we type a space followed by two left angle brackets in other space and then in double quotes we type the text we want to print on the screen so hello world okay and then we terminate this line using a semicolon just like how we terminate our sentences with a period so in C++ this line is called a statement because it tells the operating system and what to do so whenever we
            • 12:30 - 13:00 typee a statement we should terminate it with a semicolon okay now finally we return the value of zero and once again we need to terminate this with a semicolon but why zero well zero tells the operating system that our program is going to terminate correctly if we return any other values positive or negative that means our program encountered an error okay so let's quickly recap what we have done so far on the top we included one of the files
            • 13:00 - 13:30 in the standard library for printing something on the screen then we defined the main function which is the entry point to our program now as you can see the main function returns an integer which is a whole number like 0 1 2 3 and so on and in between the braces we have written the code for this function so on the first line we print something on the screen and on the second line return the value of zero as simple as that this is your first first C++ program next I'm
            • 13:30 - 14:00 going to show you how to compile and run this program now to run this program first we have to compile this code to machine code that can be run by the computer's operating system so the machine code is basically the native language that a computer's operating system understands and it's different from one operating system to another so if we compile this code on a Windows machine we get an
            • 14:00 - 14:30 executable but that executable only runs on Windows we cannot run it on Mac or Linux if you want to run our application on a Mac computer we have to take this code on a Mac and recompile it to get an executable for Mac okay so back to our code to run this program we're going to click on this play icon on the toolbar now look at the shortcut on Mac it's control and R always use shortcuts because they make your life easier so
            • 14:30 - 15:00 let's run this program we get this little window down the bottom this is called the console or The Terminal window it's basically a way to see the output of our program so over here you can see the hello world message so we're using a console application here because console applications are easier to create especially for people learning a new language building applications with a graphical user interface or GUI is way more complex so one once you understand the basics of
            • 15:00 - 15:30 C++ you'll be ready to move on to writing applications with a graphical user interface if that's what you want okay now let's minimize this window and make a tiny problem in this code so I'm going to remove this semicolon now let's rerun our program all right look this time we get a compilation error pointing to this line so the error is reminding us that we have forgotten a semicolon if you're starting out it's completely normal to
            • 15:30 - 16:00 encounter these errors if you have a typo or miss a semicolon and so on don't let that discourage you remember patience is the first skill of a good programmer so if your code doesn't get compiled pay close attention to this video see what exactly I'm typing compared with your code I promise if you pay close attention you'll be able to solve issues on your own so let's fix the issue all right let's move on to the next lesson
            • 16:00 - 16:30 [Music] now going forward I want to change the colors here and I wanted to show you how to do that because a lot of people ask me about the themes I use in my videos if you're not using cion feel free to move on to the next lesson so on the top we go to the preferences menu then under appearance and behavior we select appearance now over here you can see the themes that are installed by
            • 16:30 - 17:00 default we only have four themes but we can get more themes by clicking on this link now on this page I'm going to sort this list by the number of downloads so we can see the popular ones I'm going to pick Dracula theme it's a very popular theme but feel free to play with these themes and find the one that you personally like so let's install this accept good now okay so this is the
            • 17:00 - 17:30 dracul theme which is much better than the default theme that comes with cion so that brings us to the end of this section in the next section we're going to talk about the basics of C++ so I will see you in the next section now let me give you a quick overview of how I've structured the course so you can get the most out of it this course is the first part of my complete C++ series each part is about 3 to 4 hours long so
            • 17:30 - 18:00 you can easily complete it in a day or two in the first part which is the one you're watching we explore the basics in this part you will learn the fundamentals of programming in C++ data types decision-making statements loops and functions now throughout the course I'm going to give you plenty of exercises to help you develop your problem solving skills and build your confidence in writing code in fact many of these exercises are popular interview your questions in the second part we'll
            • 18:00 - 18:30 explore intermediate level Concepts such as arrays pointers strings structures enumerations and streams and finally in the last part we'll be talking about the advanced concepts such as classes exceptions templates containers and more so by the end of this series you will have a solid understanding of C++ and you'll be ready to apply it in real life for example if you want to build games with Unreal Engine which is a popular gaming engine you will have the
            • 18:30 - 19:00 necessary C++ skills to build games you just need to learn about Unreal Engine so I hope you stick around and master C++ one of the fastest and most efficient programming languages [Music] available hey guys msh here I just wanted to say that you don't really have to memorize anything in this course I've put together a complete cheat sheet and summary notes for you that you can download as a PDF right below this video
            • 19:00 - 19:30 so click the link in the description to download this PDF so I have done my best to create the simplest C++ tutorial for you so if you enjoy this please support my hard work by liking and sharing this video and also be sure to subscribe as I upload new videos all the time welcome back to the ultimate C++ course in this section we're going to talk about the basics of C++ will cover variables and constants naming
            • 19:30 - 20:00 conventions coding mathematical Expressions writing to and reading from the console working with the standard library and comments so by the end of this section you'll be able to write simple but really useful programs in C++ now let's jump in and get [Music] started all right let's talk about variables in programming we use
            • 20:00 - 20:30 variables to temporarily store data in the computer's memory now technically a variable is the name of a location in memory where we can store some value now because the value can change we refer to this location as a variable now to declare a variable in C++ first we have to specify the type of data we want to store let's say int or integer for storing whole numbers then we give our variable a proper meaningful name like
            • 20:30 - 21:00 file size now there are various ways to name our variables we have various conventions we'll talk about them momentarily once we declare a variable then we terminate the statement with a semicolon now I want to emphasize that you should always use meaningful names for your variables don't use abbreviations like FS because someone else reading this code may not know what FS is short for also don't go for names like F1 or F2 or thing these are all cryptic and ambiguous okay so we're
            • 21:00 - 21:30 going to call this file size and then we can give it a value like 100 so we assign it the value of 100 now here we can combine these two statements into a single statement and that makes our code shorter and more concise so right here where we declare our variable we can give it an initial value of 100 this is called initializing a variable now we don't need the second line okay now
            • 21:30 - 22:00 let's declare another variable for storing numbers with a decimal point for that we're going to use a different data type that is double we're going to talk about different data types in the next section so in this section we're only going to work with integers and doubles now we're going to call this sales and initialize it to 9.99 okay now that we have two variables we can print them on the console so instead of hello world let's print file size run our program we see 100
            • 22:00 - 22:30 beautiful now while initializing variables is not mandatory it's a good practice to follow let's see what happens if we don't initialize file size and print it on the terminal well immediately we see this warning let's take a look the warning is saying variable file size is uninitialized when used here initialize local variable file size so our ID is complaining that we are using using a variable that doesn't
            • 22:30 - 23:00 have an initial value let's run our program and see what happens take a look look we get this random value and if we run our program multiple times we see a completely different value this is what we call garbage this is the data that is currently in memory so as a best practice we should always initialize our variables before using them so I'm going to set this to an initial value of zero now in languages like C or we don't have to do this if we declare an integer it
            • 23:00 - 23:30 automatically gets initialized to zero but this is not how it works in C++ okay so this is how we can declare and initialize variables and by the way we can also initialize multiple variables on the same line so over here we can declare a second integer let's call that counter so we add a comma and then declare counter and optionally we can initialize it to some value now while this works it's of discouraged as a best
            • 23:30 - 24:00 practice we should declare each variable on a separate line so I'm going to remove this and declare another integer like this okay now I have a small exercise for you I want you to write code to swap the value of two variables this is a common interview question so let me explain what I mean we're going to declare two variables A and B now if we print a we're going to see one on the terminal right now here's what I want you to do over here I want
            • 24:00 - 24:30 you to write code to swap the value of these variables so when we print a we see two and when we print B we see one now I don't want you to reset these variables so I don't want you to set a to two and B to one this is not the right solution let me give you a hint imagine instead of these two variables we have two buckets the first bucket is filled with apples the second bucket is filled with oranges now if we have these
            • 24:30 - 25:00 two buckets in real life how can we swap their content think of a solution and then use that idea to write code to swap the value of these variables it's not that difficult just spend a couple minutes on this and then come back see my solution so to solve this problem in real life we need a third bucket first we empty our Apple's bucket into this bucket now the apples bucket is empty so we can move the content of the oranges
            • 25:00 - 25:30 bucket here now the oranges bucket is empty so we can move the content of the third bucket into this bucket now we have swapped the content of our buckets right so let's use this idea to solve this exercise we declare a third variable we can call the temp and we initialize it with what we have in a that is the value of one now we can set a to B so whatever we have in B which is two two is now going to be in a and
            • 25:30 - 26:00 finally we're going to set B to Temp so B is going to be one so now if we print a we're going to see two instead of one let's verify this so let's run our program there you go beautiful so this was your first programming problem if you got stuck don't worry it's completely normal as we go through the course I'm going to give you more and more exercises to help you build your confidence next we're going to talk about constants
            • 26:00 - 26:30 [Music] there are situations where we don't want the value of a variable to change this is where we use constants here's an example let's declare a variable of type double and call it pi and set it to 3.14 now with this we can calculate the area of a circle right but what if somewhere in our program I accidentally set pi to a different value like zero
            • 26:30 - 27:00 with this our calculations are going to go wrong right this is where we can use a constant to prevent the value of pi from changing how do we do that very easy we type the con keyword before declaring this variable now look on line five we have a red underline that is a compilation error so if you hover our Mouse here we see the error saying cannot assign to variable Pi with const qualified type const double and also if
            • 27:00 - 27:30 we try to run our program here in the terminal window we see an error so take a look this is the error the error is happening in main.cpp on line five in column 8 and here's the actual error cannot assign to variable Pi with con qualified type okay so this will prevent us from accidentally modify the value of this variable or more accurately constant [Music]
            • 27:30 - 28:00 now let's talk about naming conventions so we have different conventions for naming our variables and constants and different teams prefer different conventions so there is really no right or wrong here but let me show you the popular conventions so earlier we declared a variable called file size the way we name this variable follows what we call the snake case so with this convention we have to use lowercase
            • 28:00 - 28:30 letters to name our variables and constants and if we have multiple words we should separate them using an underscore now we have another convention called hascal case in which we should capitalize the first letter of every word so the same variable using Pascal case looks like this this is Pascal case and by the way the text that I put here that starts with two forward slashes this is is called a comment we'll talk about comments later in this
            • 28:30 - 29:00 section but for now just remember that comments are a way to describe our code they don't get compiled okay now we have another convention that is similar to Pascal case the only difference is that the first letter of the first word should be lowercase so file size this is camel case we also have Hungarian notation which is a pretty old notation and it's not relevant anymore with hung notation we should prefix the name of
            • 29:00 - 29:30 our variables with a letter that specify their type so here we have an integer so we use a lowercase i and then file size just like Pascal case this is called Hungarian notation now quite frankly this is a very old notation it's not relevant anymore but I still see people using it I've seen it a lot in Windows source code the reason this is not relevant anymore is because in the old days we didn't have editors so if we declared a
            • 29:30 - 30:00 variable somewhere and we wanted to know its type we had to scroll up to find the type of that variable so with Hungarian notation we could look at a variable and immediately tell its type but this is not the case anymore because these days we have powerful editors if we simply hover our Mouse over any variable we can see it type so here you can see file size is an integer variable right so these are the popular conventions out there in this course I'm going to use camel case for naming our
            • 30:00 - 30:30 variables and constants and Pascal case for naming our classes we'll talk about classes later in the course now if you don't like these conventions and prefer to use snake case that's totally fine but make sure to stick to your own convention the more consistent your code is the easier it is to read understand and maintain it next we're going to talk about mathematical expressions [Music]
            • 30:30 - 31:00 so you have learned how to declare variables and constants now let's see how we can write mathematical expressions for performing calculations this is where the fun begins so I'm going to declare two variables X and Y now we can declare a third variable and set it to x + y so what we have here is called the addition operator and X and Y here are called operat so now let's print Z on the terminal so STD double
            • 31:00 - 31:30 Colon c out Z take a look so now we see 13 beautiful we also have subtraction multiplication and division but division is a little bit tricky in this case because we're dealing with two integers the result of the division is going to be an integer even though in reality dividing 10 by 3 is going to result in a number with a decimal point which we
            • 31:30 - 32:00 call a floating Point number in programming so if you're onun our program we see three but what if you want to see a floating Point number well changing the type of Z to double is not going to solve this problem because as I told you earlier if both our numbers are integers the result of the division is also going to be an integer so to get a floating Point number we have to convert one of these numbers to a double so take a look first the warning goes
            • 32:00 - 32:30 away now if you run our program one more time look we get 3.3333 okay so this is how division works in C++ now let me revert this back to integer and integer now we have another operator called modulus which Returns the remainder of a division so what is the remainder of division of 10 by 3 it's one let's verify it there you go okay now using these operators we can
            • 32:30 - 33:00 modify our variables let me show you what I mean so for Simplicity I'm going to remove Y and Z we only have X and we're going to print it on the terminal let's say we want to increment X by five here's how we do it we Type X = x + 5 so first this piece of code or this expression is going to get evaluated the result is 15 and then the result will be stored in in X okay now similarly we can
            • 33:00 - 33:30 subtract five from X we can multiply X by five and so on okay now we also have two more operators you need to know and they are increment and decrement operators so let's say we want to add one to X we can say x = x + 1 that is totally fine but there is a shorter and more concise way to write this code we can say x++ this is the increment operator we also have decrement operator but we
            • 33:30 - 34:00 don't have the equivalent for multiplication or division only increment and decrement okay now this increment operator there are two ways we can apply it we can apply it as a postfix or as a prefix let me show you the difference so I'm going to delete these two lines let's declare another variable called Y and set it to X plus plus if we apply this as a post fix first the current value of x which is 10 is going to be assigned to Y so Y is
            • 34:00 - 34:30 going to be 10 and then X will be incremented by one so if you run our program X is going to be 11 but Y is going to be 10 let me show you so we print x x is 11 but if you print y y is going to be 10 okay so let me add this as a comment for clarity in this case X is going to be 11 and Y is going to be 10 now what if we apply the
            • 34:30 - 35:00 increment operator as a prefix so we declare another variable and set it to Plus+ X in this case because we applied this operator as a prefix first the value of x is going to be incremented by one so X is going to be 11 and then the result will be stored in Z so in this case both x and z are going to be 11 let's verify it so if you print Z well in this case z is 12 I made a
            • 35:00 - 35:30 mistake because in the previous statement we incremented X by one so if we comment out this line it's not going to get executed so now when we run our program X is going to be 11 and Z is going to be 11 as well let's verify it so here is z beautiful and let's also print X there you go so here's what you need to take away if
            • 35:30 - 36:00 you apply the increment or decrement operator as a prefix first this piece of code is going to get evaluated so first X is going to be incremented by one and then the result is going to be stored in the other variable in contrast if you apply this operator as a postfix first the current value of x which is 10 is going to be stored in y and then X is going to be incremented by one hey guys MOS here I hope you have been
            • 36:00 - 36:30 enjoying this tutorial so far I just wanted to let you know that this tutorial is the first hour of my complete C++ Series where you will learn everything you need to know from the basics to more advanced concepts so watch this tutorial to the end and if you still want to learn more use the link below this video to enroll in the full course the complete course contains three parts each part being around 3 to 4 hours long so you can complete them in a day twoo you will also get a certificate of completion and a 30-day
            • 36:30 - 37:00 money back guarantee again if you're interested the link is below this video in the description box when writing mathematical Expressions especially the more complex ones you need to take into account the order or priority of operators let me show you what I mean so I'm going to declare a variable called X and set it to 1 + 2 * 3 now let's print
            • 37:00 - 37:30 X on the console what do you think we're going to get pause the video and think about it for a second the answer is seven this is a very simple math question but unfortunately a lot of people get it wrong here's the reason in math the multiplication and division operators have a higher order or a higher priority so when evaluating this piece of code or this expression first this part is evaluated so 2 * 3 is six
            • 37:30 - 38:00 and then six is added to one so the result is seven let's verify it so I'm going to run the program there you go we have seven okay so here's what I want you to remember in math or any programming languages the multiplication and division operators always have a higher priority than addition or subtraction operators but we can always change the order of these operators using
            • 38:00 - 38:30 parenthesis so in this case if we wrap this piece of code with parenthesis first this piece is evaluated so 1 + 2 is three and then three is multiplied by three so the result is going to be nine let's verify it so run the program one more time there you go okay now here's your exercise for this lesson take this mathematical expression and implement it in C++ assume X is 10 and Y is 5 so if you
            • 38:30 - 39:00 implement this correctly Z is going to be 1.3 so pause the video and work on this for a couple minutes then come back see my solution all right here's the solution I'm going to declare X and set it to 10 then y we set it to five and for Z first we have to add 10 to X but we have to wrap this in parenthesis because this whole thing is going to be our numerator
            • 39:00 - 39:30 once we have the numerator then we're going to divide it by 3 * y but here's the tricky part we have to wrap this whole expression in parenthesis because the result of this expression is going to be our denominator if you don't use parenthesis here our denominator is going to be three and the result is going to be different so we wrap this whole thing in parenthesis and now let's print Z on the terminal so we should get
            • 39:30 - 40:00 1.3 again if you didn't solve this properly don't worry don't let that discourage you remember you're a student you're learning if you know everything and you could solve every problem you would be the one teaching right so don't let that discourage you and let's move on to the next [Music] lesson so you have learned how to write to the console or The Terminal window in this lesson I'm going to show you a few
            • 40:00 - 40:30 more techniques of writing to the console so let's start by declaring a variable now let's say on the terminal we want to print xal 10 how do we do this well first we go in the STD namespace and pick up C out which is an object that represents the standard output stream I know it's a mouthful but let me explain it for you in programming a stream represents a sequence of C characters the standard output is our console or terminal window so using C
            • 40:30 - 41:00 out we can write a sequence of characters on the standard output which is our console window right now these double left angle brackets are called The Stream insertion operator it's an operator for inserting something to our output stream in this case we're going to write a sequence of characters which we specify using double codes now in programming or C++ specifically this is called a string we'll talk about strings
            • 41:00 - 41:30 later in the course so here I'm going to print x equals and right after we want to print the actual value of x so we terminate this statement and you see out one more time but this time we print X okay let's run our program and see what we get so we see X is 10 beautiful now we can combine these statements into a single statement so we get rid of the second C out and this semicolon and then
            • 41:30 - 42:00 put everything on the same line now we are changing multiple stream insertion operators so if we run our program one more time we get the exact same result beautiful now what if we declare a second variable so let's declare Y and set it to 20 and then repeat so one more time see out y equals and then we add why take a look all right here's what we
            • 42:00 - 42:30 get but wouldn't that be nicer if yals 20 was on the second line well to solve this problem right here we need to add a new line so once again we chain the stream insertion operator and this time we go in the city name space and pick up endel which represents the end of the line okay now let's run our program one more time that is much better okay now once again we can simplify this code by
            • 42:30 - 43:00 combining these two statements so again we don't need the second C out so let's remove that and this semicolon as well now if we run our program we get the exact same result however our code is not formatted properly it's a little bit hard to read this code so here I'm going to use tabs and spaces to align these operators so what we have in our code look exactly like what we expect in the output okay
            • 43:00 - 43:30 this is better now there is a tiny problem in this code we have a bit of repetition of STD double colons so we have repeated this in two places let me show you how to simplify this code so before our main function we use the using directive to pick up the STD name space so here we type namespace STD now STD is defined anywhere in this file so we don't have to repeat it in multiple places so we can simply access all
            • 43:30 - 44:00 objects in the STD namespace so let's remove that and this one as well and finally let's realign this brackets great so now our code is cleaner more concise and easier to read great now here's your exercise imagine you have a store and you have made $95,000 now as part of your tax return you have to pay state and County tax at different rates so state tax is 4%
            • 44:00 - 44:30 whereas County tax is 2% now I want you to write code to show your total sales as well as your state tax your county tax and the total tax you have to pay on this income so pause the video and work on this exercise for 5 minutes then come back see my solution all right here's my solution first we need a variable for storing the total sales and for that I'm going to use a double so even though we don't have any scent values here but for
            • 44:30 - 45:00 monetary values we should always use a double so double sales equals 95,000 now right after let's print the total sales here we add a dollar sign that's nicer then we chain the insertion operator to print sales followed by the end of line now before going any further let's run our program and make sure everything works so run total sales is $95,000
            • 45:00 - 45:30 great next we need to calculate the state tax so let's declare another variable called state tax and here we get sales and multiply it by 0.4 and then once again we print this on the terminal so state tax is this value followed by the end of line now once again let's run our program and make sure everything works so this is how I want you to write code write a bit of code run it make sure
            • 45:30 - 46:00 everything works before going further baby steps so run so our estate tax is 3,800 great now let's improve this code the first thing I want to improve here is formatting so the first two lines are about the total sales whereas the second two lines are about the state tax these are two different stories right so here I add a vertical line to separate these stories just like how we have multiple
            • 46:00 - 46:30 paragraphs in an article we want to write our code so every story is separated from other stories okay so here's our state tax then I add another vertical line to separate it from the return statement great now this line is totally fine but generally speaking it's best to avoid magic numbers like this here because even though this is a very simple example in more complex programs these mag magic numbers might be confusing someone else reading your code
            • 46:30 - 47:00 may not know what that number represents so here we can make our code more expressive by storing this value in a separate variable so we declare a variable called state tax rate and set it to 0.4 and then we can reference that variable right here now it's completely clear what this value represents it's our state tax rate but this has another benefit if we use this variable in multiple places in our
            • 47:00 - 47:30 code and then tomorrow this dat tax changes we don't have to come back and modify multiple places we have a single place where we have stored this value okay now there is a tiny problem in this code the problem is that I can accidentally change theate tax rate how can we solve this problem using a constant so we qualify this with the const keyword that's better now we have to repeat the same three lines for our
            • 47:30 - 48:00 County tax so I'm going to copy this and paste it and again note the vertical line this is to separate these stories so over here we're going to rename this to County tax rate which is going to be 2% and over here we going to calculate the county tax and print it accordingly County tax good nothing new and we should also replace state tax
            • 48:00 - 48:30 rate with County tax rate so let me show you a shortcut here look I haven't typed County tax rate I just typed kind of an abbreviation so count TR so we can use abbreviations to quickly type our code and press enter to complete it okay now let's run our program and make sure everything works so our County tax is 1900 beautiful now the final part we declare
            • 48:30 - 49:00 another variable called total tax which equals State Tax Plus County tax and finally we print it on the terminal total tax okay so once again see how I've named my variables all the variables are properly named they're meaningful there is no ambiguity in this code we don't have t 1 T2 TR whatever don't write code like that next we're
            • 49:00 - 49:30 going to talk about reading input from the [Music] user all right now let's see how we can read input from the console so you have learned that c out represents the standard output string now in this file in iio stream we have another object called cin which represents the the standard input stream which we can use for reading data from the console let me
            • 49:30 - 50:00 show you how first we're going to use C out to print a label on the screen so enter a value now using C in we can read that value and put it in a variable but first we need to declare a variable so let's declare an integer called value then we use C in along with the stream extraction operator to read that value and put it in this variable able okay so this is called the stream extraction
            • 50:00 - 50:30 operator it's the opposite of stream insertion operator I know it can be confusing but the easiest way to remember this is to think of the direction of data flow so in this case we have reading data from the console or the standard input and putting it into this variable in contrast with see out you're basically getting this sequence of characters and putting them into the console so this is the way to remember this okay now to verify that our program
            • 50:30 - 51:00 works let's print the value that we just read so let's run our program enter value let's say 10 and we get 10 in the output beautiful now what if we enter a floating Point number a number with a decimal point let's see so this time I'm going to enter 10.1 the decimal part is gone because we declared this value as an integer so if you want to read a floating Point number
            • 51:00 - 51:30 here we have to use a double type take a look so one more time 10.5 now we get 10.5 beautiful now we can also read multiple values so let's change this label to enter values for X and Y now let's declare two variables called X and Y first we read X and then we read Y and finally we can
            • 51:30 - 52:00 print x + y this is like a simple calculator so take a look we can enter 10 and 20 and the result is 30 now we can also separate these numbers using a space and the program will still work take a look so one more time 10 space it doesn't matter one or more spaces we add the second number and we get the same result okay now similar to see out here we can chain these statements together
            • 52:00 - 52:30 so we can get rid of the second statement and chain the stream extraction operator to read the second value so look we start from the console we read something and put it in X then we read something else and put it in y it's exactly like before but our code is shorter so this is how we can read input from the console now as your exercise I want you to write a program for con converting temperatures from Fahrenheit to Celsius so when you run your program
            • 52:30 - 53:00 the program should ask the user to enter a temperature in fahrenheit and then it should convert it to Celsius and print it on a terminal so pause the video and spend a few minutes on this then come back see my solution all right here's the solution it's pretty easy first we use see out to print a label like Fahrenheit then we declare a variable for storing the temperature in fahrenheit Fahrenheit next using C in we read that
            • 53:00 - 53:30 value and put it in this variable then we declare a variable of type double called Celsius the reason I'm using a double here is because the conversion might result in a floating Point number so here's the formula Fahrenheit minus 32 we wrap this in parenthesis and then divide it by 1.8 the finally using C out we print the temperature in celsius now let's test
            • 53:30 - 54:00 our program so 90 in Fahrenheit is equivalent to 32.2 in [Music] Celsius so you have seen that the standard Library gives us the capability to read from or write to the console now in this lesson we're going to look at a different part of the standard Library that gives us several useful mathematical functions so on the top
            • 54:00 - 54:30 we're going to use the include directive one more time to include a file called C maath this file declares a bunch of useful mathematical functions now if you're curious what these functions are just go to Google and search for cmath reference there are many different websites that give you a C++ reference one of them is C+ plus.com the other is CPP reference.com and so on so as an example let's look at this
            • 54:30 - 55:00 page so over here you can see all the functions declared in the cmath library in this lesson we're going to look at a couple of them one of them is Seal which rounds up a value the other is floor which rounds down a value now if you click on any of these functions you can learn more about it so on the top you can see different versions of c and C++ so C90 and c99 represents the old C language C++ 98 is one of the early
            • 55:00 - 55:30 versions of C++ that came in year 1998 then we have C++ 11 that was released in year 2011 so you can see how this function has evolved over different versions of C or C++ now don't get hung up too much about these details all I want you to pay attention to here is that this function takes an input of type double and returns another double so let's see this in action so back to the code here in the
            • 55:30 - 56:00 main function to use the floor function we type floor followed by a pair of parentheses and then we Supply the input value which is called an argument so we pass 1.2 now we get a double value that we can store in a variable so let's declare a variable of type double called result and set it to the return value of the floor fun function and then we terminate this statement with a semicolon now over here we say that we
            • 56:00 - 56:30 are calling the floor function which means we're executing it we giving it a value and getting a new value now we can print the result just like before and the result is one okay now some functions take multiple values or multiple arguments one of them is the power or power function so let's take a look po requires two arguments here we need to pass two values separated by comma so
            • 56:30 - 57:00 if we say 2 comma 3 that means 2 to the power of three now when we type this C lion adds these labels lcpp underline X and lcpp underline y these are the name of the parameters of this function so C lion adds this to make our code a bit more understandable okay now if we run this we get eight okay now as an exercise I want you to write a program
            • 57:00 - 57:30 that asks the user to enter the radius of a circle and then it should print the area of a circle it's pretty easy you can knock it out in a couple of minutes all right here's my solution first we use see out to print a label into radius then we declare a double variable called radius next we you see in to read the value the user enters into this
            • 57:30 - 58:00 variable now we declare another variable called area and here we have to use the old formula pi * R to ^ of 2 so we can type the pi number here but earlier I told you that we should avoid magic numbers as much as possible so we're going to store this value Pi in a separate variable or even better we can make this a constant okay now can say area equals Pi * this is where we use the power
            • 58:00 - 58:30 function to get radius to the power of two as simple as that now finally we use see out to print the area Let's test our program so if we enter 4 the area is [Music] 5024 all right the last we're going to cover in this section is comments we use comments to clarify our code and to make
            • 58:30 - 59:00 it easier to understand as I told you before comments don't get compiled now in C++ we have a couple of different ways for writing comments we can start with two forward slashes and whatever we type in front of these slashes will be considered a comment now we can add the slashes above a line or in front of it either way works but as you can see here we have limited space because we're basically bound to what is left here of
            • 59:00 - 59:30 course we can write a longer comment but then we'll have to constantly scroll to the left and to the right to see what is going on so it's more conventional to write the comment above a line now if you want to have multiple lines again we can start a new line of comment like this okay now in C++ we have another way for writing a multi-line comment instead of two forward slashes we start with a forward slash and an asterisk and then press enter now
            • 59:30 - 60:00 cine automatically generates this block of comment these two characters represent the beginning of the block and these two characters represent the end of the comment block what we put in between will be considered a multi-line comment now different teams have different preferences in terms of which style of comments should be used so there is really no right or wrong here just pick one style and stick to it now one thing I want to emphasize about comments is that you should not overuse them because they make your code harder
            • 60:00 - 60:30 to understand and maintain so you should use comments only to explain wise and how not what let me show you what I mean so here I can write a comment and say declare a variable and initialize it to zero well it is obvious that that's what we're doing on the next line so this comment is completely unnecessary and it's making our code a little bit verbose we don't want to sprinkle our code with all these kinds of unnecessary comments instead we should use comments
            • 60:30 - 61:00 to explain wise and how's if you made certain assumptions while writing this code we should comment those assumptions so in the future when we come back we see why we did things in a certain way okay so that's all about comments and that brings us to the end of this section so I will see you in the next section welcome back to the ultimate C++ course in this section we're going to explore the fundamental data types in C++ in detail we'll talk about various
            • 61:00 - 61:30 built-in types as well as their size and limits more specifically we'll explore various types for representing numbers and their differences you will learn how to generate random numbers which is a very useful technique especially for building games you will also learn how to work with Boolean values characters on strings as well as arrays which we use for storing a list of values so by the end of this section you will have a deep understanding of these fundamental data types and how to use them to write
            • 61:30 - 62:00 useful programs so now let's jump in and get [Music] started so you have seen that in C++ to declare a variable we need to specify its type that's why we say C++ is a statically typed language meaning when declaring a variable we need to specify its type and this type cannot change
            • 62:00 - 62:30 throughout the lifetime of our program other examples of statically type languages are C Java typescript and so on in contrast to statically typed languages we have dynamically typed languages like python JavaScript and Ruby in these languages we don't have to give our variables a particular type the type will be determined based on the value that we assigned to these variables and that type can change throughout the lifetime of our program okay so that is the difference between
            • 62:30 - 63:00 statically and dynamically typed languages now in C++ we have a bunch of different built-in data types so far you have only seen int and double but we have more built-in types that we're going to cover in this section in this lesson I'm going to give you a basic overview of these types but as we go through this section you'll become more familiar with these types so for storing whole numbers we have int which takes four bytes of memory on most systems this is not a hard and fast rule
            • 63:00 - 63:30 depending on the implementation the number of bytes taken by an integer can vary from one system to another but for the most part you can assume that an integer takes four bytes of memory in four bytes we can store numbers from minus 2 billion to plus 2 billion now if you want to store a smaller number we don't need to waste four bytes of memory so we can use the short type which takes two bytes of memory and in byes we can store the values from - 32,000 to +
            • 63:30 - 64:00 32,000 now for storing larger numbers we have long which is often the same as int on most systems and long long which takes eight bytes of memory and allows us to store really large numbers speaking of experience most of the time you'll be using short or in types unless you're working on programs that involve complicated mathematical computations now for numbers with decimal places which we call floating Point numbers we have double which you have seen so far
            • 64:00 - 64:30 the double type takes 8 bytes of memory now we also have float which takes four bytes of memory and long double which takes 8 bytes of memory as well again most of the time you would be using double especially for storing monetary values because the flow type can result in loss of accuracy now we also have the Bull type for storing true and false values they're often used to represent a condition like like is this person eligible for a loan or not we also have another built-in type called Char for
            • 64:30 - 65:00 storing single characters so that was a basic overview of the fundamental data types in C++ again as we go through this section we'll explore these types in more [Music] detail now that you're familiar with the basic built-in types in C++ let's let's look at a few different ways to declare and initialize variables so I'm going to
            • 65:00 - 65:30 start by declaring a double called price and we're going to set this to 99.99 nothing new so far but what if we want to declare a float well we can declare a float called interest rate and we set it to 3.67 and here at the end we type the letter F that is short for float this is really important because if you don't type this by default the compiler will treat this number as a double and then it will try to store a double inside a
            • 65:30 - 66:00 float variable and this can potentially cause data loss so when working with float values always type an F at the end it can be uppercase or lowercase it doesn't really matter now there is another reason we should type this letter we'll come back to this shortly now let's declare a long so long file size we can set this to 990,000 now similar to the float type here we should add the L suffix because if you don't type this the compiler will treat this
            • 66:00 - 66:30 number as an integer so to force the compiler to treat this as a long we type either an uppercase or a lowercase L now the lowercase L can be confused with the number one so the best practice is to use a capital l okay now let's declare a variable for storing a character so we say Char letter and here we use single quotes to represent a character like a okay and finally let's look at a
            • 66:30 - 67:00 Boolean we're going to call this is valid and we can set it to true or false these are the acceptable values for booleans now with any of these types we can also use the auto keyword to let the compiler infer the type of our variables for example if we change bull to Auto and then hover our Mouse over is valid look the comp compiler knows that is valid is of type bull similarly if we
            • 67:00 - 67:30 change charart to Auto and look at the type of this variable we can see it's of type chart now here's the interesting part if we change long to Auto we can see that file size is of type long because we added the letter L at the end if we don't type this and use the auto keyword look file size is treated as an integer so that is why we need to add this suffix similarly for floats if we use Auto now we can see interest rate is
            • 67:30 - 68:00 a float but if you remove the suffix it will be treated as a double right so this is the benefit of using the auto keyword it kind of makes our code shorter and more consistent you don't have to use it if you don't like it but the auto keyword is particularly useful when working with more complex types we'll look at that in the future now there is one more way to initialize variables in modern C++ that you need to know and that's called brace initialization so let me delete all this
            • 68:00 - 68:30 code and declare an integer called number and set it to 1.2 now here we get a warning because we have a yellow underline but our code still gets compiled so if we print number and run our program we see the fraction part is gone and we see one okay now there is another way to initialize this variable and prevent this kind of scenario where we assign the wrong value to a variable so instead
            • 68:30 - 69:00 of the assignment operator we use braces so we put this value inside braces now look we have a compilation error because we have a red underline so our code is not going to get compiled the brace initializer stops us from making such mistakes now there is another benefit to using brace initialization if we don't Supply a value here our number variable will be initialized to zero so if you run this program we see number is zero
            • 69:00 - 69:30 however if you remove the empty initializer here and run our program again you can see we get this random value which we say it's garbage and every time we run our program we get a different value so this makes our programs unpredictable so we should either initialize our variables using the assignment operator to a proper value or we should use an empty brace
            • 69:30 - 70:00 [Music] initializer in math and programming we have different number systems that serve different purposes in our day-to-day life we use decimal or base 10 numbers which can contain digits 0 to 9 but computers don't understand these digits they only understand zeros and ones that's why we have the binary or base two system so the number in this system can only contain zeros and ones now we can take any number and represent it as
            • 70:00 - 70:30 a binary for example the number 255 in the decimal system is equivalent to 8 1es in the binary system it's a very long number that's why we use the heximal or base extend numbers to shorten binary numbers a heximal number can contain the digits 0 to 9 as well as the letters a to f as you can see heximal numbers are more common compact now in programming we use heximal numbers to represent colors you probably
            • 70:30 - 71:00 heard of RGB or red green blue colors using only six digits of a heximal number we can represent any color that's very useful we don't have to deal with really large decimal or binary numbers now let's see how we can represent these numbers in C++ so I'm going to declare an integer called number and set it to 255 now if you want to represent this number in the binary system we type z b as a prefix and then we type a binary number I'm
            • 71:00 - 71:30 going to type 8 ones so 1 2 3 4 5 6 7 8 now let's print the number take a look we get 255 okay now we can represent the same number in the hexo decimal system so instead of 0 B we type 0x and then we type a hexo decimal number in this case double F which can be operate case or door case it doesn't really matter let's run our program one more time look we
            • 71:30 - 72:00 get the same number beautiful now most of the time I would say 99% of the time we use decimal numbers but depending on the kind of application you're building in some situations you may want to represent a number as binary or hexadecimal okay now irrespective of how we represent numbers our numbers can be positive or negative if we dealing with a positive number we don't have to type a positive sign it's assumed by default but for negative numbers obviously we have to type a minus now in C++ we have
            • 72:00 - 72:30 a special keyword called unsigned if you apply this to a numerical type that type cannot accept negative values now on the surface you might think this is a good value but it can actually cause programming problems that are hard to spot for example let's print this number on the console and see what we get so we get this really large positive number as another example we might initialize this number to zero and then
            • 72:30 - 73:00 somewhere else in our program we might decrement this number now if we print this instead of negative one we're going to get this really large positive number so my suggestion is to stay away from the unsigned keyword just because C++ has this feature doesn't mean you should use it that's why earlier in the course I told you that you don't need to learn all of C++ all of its features to build use and substantial programs so stay away from the unsigned
            • 73:00 - 73:30 [Music] keyword when working with numbers a concept unit to understand is narrowing and that happens when you initialize a variable of a smaller type using a larger type here's an example let's declare an integer called number and set it to 1 million now to make this code more readable we can separate these digits using a single quote that's better now
            • 73:30 - 74:00 let's declare a short called another and set it to number now we immediately get this warning saying narrowing conversion from int to sign type short is implementation defined I know it's a mouthful basically the warning is saying that because we're converting an integer to a short this conversion is a narrowing conversion so it's going to result in narrowing down our number which is 1 million so now if we print another and run our program we see
            • 74:00 - 74:30 16,000 this is the result of narrowing conversion now obviously if we used a brace initializer here we could prevent this our code wouldn't even get compiled so this is another benefit of the brace initializer okay now what if we do the opposite what if we declare this number as short and put it in an integer now in this case we have a warning because this number is too large to fit in a short
            • 74:30 - 75:00 variable because as I told you earlier using the short data type we can store numbers from minus 32,000 to plus 32,000 so let's change this to let's just say 100 and then put it in an integer now we can use the brace initializer or the assignment operator it doesn't really matter let's run our program we get 100 so the opposite is
            • 75:00 - 75:30 not an issue so the short type takes two bytes the integer takes four bytes if you store a smaller number in the larger memory space we're not going to encounter data loss so the additional bytes in memory are going to be filled with [Music] zero all right now let's see how we can generate round random numbers in C++ this is very useful we can use random numbers in creating games that involve
            • 75:30 - 76:00 rolling a dice card or other elements so we have a function called Rand that is defined in a library called cstd lip so on the top we need to include another file from the standard Library called C STD lib okay now we call this function and get a random integer so let's store it here and then print it on the terminal now let's run this program so this is the number I get on
            • 76:00 - 76:30 your machine you're probably going to get something different now here's the thing every time we run this program we get the exact same number the reason for this is that these numbers are not really random they're basically based on some kind of mathematical formula so to get a random number we need to see the random number generator with a different value let me show you what I mean so we have another function called s Rand that is short for seed Rand if you see the
            • 76:30 - 77:00 random number generator with the value of five now we get a different random value but again every time we run this program we get the exact same random number if we see this with a different number now our random number is going to be different so how can we get truly random numbers well we have a function for getting the current time in terms of the number of seconds elapsed from
            • 77:00 - 77:30 January 1970 if we use that function every time we run our program we're going to get a different number let me show you so first on the top we need to include another file called ctime in this file we have a function called time that Returns the current time in terms of number of seconds elapsed from January 1st 1970 now to call this
            • 77:30 - 78:00 function we have to give it a special argument called null pointer or null PTR we'll talk about this later in the course if this is too confusing for you just use the number zero but C lion is going to give us a warning don't worry about that it's just suggesting to use null pointer now this returns a long value which is El lapsed seconds so to see this in action instead of printing a random number let's print the elapsed
            • 78:00 - 78:30 seconds now if you're on our program this is the number of seconds elapsed from January 1st 1970 now every time we run our program we get a different value right so we can use this to se the random number generator so instead of hardcoding the number six we can use elapsed seconds now we gener a random number and print it on the terminal take a look so every time we at our program we
            • 78:30 - 79:00 get a different random number great but this random number is way too large what if you want to specify an upper limit well over here where we generate the random number we can use the modulus operator and specify the upper limit so if you type 10 that's going to return the remainder of division by 10 so that can only be numbers 0 to 9 right take a look
            • 79:00 - 79:30 so now we have two if we run our program again we get nine three and so on beautiful now we have a warning here under Rand the warning is saying the Rand function has limited Randomness use C++ 11 random Library instead so in C++ 11 we have a different way for generating random numbers but that's more complicated it's not suitable for beginners so for now this is a good way for you to learn how to generate random numbers now we can make this code a
            • 79:30 - 80:00 little bit more concise in this case we don't really need this variable a lapse seconds because anyone familiar with C++ knows that time of zero or time of null pointer Returns the current time in terms of number of elapse seconds so we can grab this function and pass it as an argument to the srand function and now we don't need the extra variable so this function will return a value and that value is going to be passed to this
            • 80:00 - 80:30 function as an argument okay so this is how we can Generate random numbers in C++ now as an exercise I want you to write a program to roll a dice so every time we run this program we should get two random values between 1 to six now to limit the range of the random number use this formula on the screen you will see my solution next all right let's look at my solution so on the top we are including three files
            • 80:30 - 81:00 iio stream CSD lip and C time now in the main function we are seing the random number generator with the current time now to generate a random value we're going to use the formula I showed you earlier so we call the Rand function and then get the remainder of division by this expression our maximum value is six our minimum value is one and then we need to add one to it now someone else looking at this code will probably have
            • 81:00 - 81:30 no idea what these numbers represent that's why I told you that you should avoid magic numbers so this is a great opportunity to use a constant so we Define two constants constant integer mean value of one and constant integer max value of six now here we can use the short type because we don't really need to store or large numbers here so it's better to use the short type to save system resources the memory so we have
            • 81:30 - 82:00 two constants now instead of hardcoding these magic numbers we use our constants and this makes our code more readable and easier to understand okay so using the modulus operator we get the remainder of division by this expression now we need to wrap the whole thing in parenthesis and add the minimum value to it this will give us a random number between 1 to six so we can store it in a variable called die one or first
            • 82:00 - 82:30 whatever you prefer then we need to duplicate this and create a second variable called second and finally we can print everything using SE out so first here we chain the stream insertion operator we can add a comma and the second variable now let's run program so we get three and four one more time 5 and six 6 and six
            • 82:30 - 83:00 beautiful we have reached the end of this tutorial again as I said this tutorial is the first hour of my complete C++ Series so if you want to learn more use the link below this video to enroll and please support me by liking and sharing this video thank you so much and have a fantastic day [Music]