C++, 1st program to expert programmer
Sharp and to the point talk on C++ programming for beginners!
Let’s start the journey from installing c++ and an IDE (Eclipse) to the complete c++ 11th version.
C++ is an Object oriented programming language that can be used to create modern desktop software, game development or even critical system drivers too. You will find out that most trading applications are designed in C++ because in trading speed is money. When we get into the game development, c++ programming is hard to avoid if you want to create a fantastic and popular game.
In this entire c++ video series, we start from installing gcc on our system. After gcc, we will install Eclipse which is a cross platform IDE because most efficient programmers don’t develop things on notepad. And yes, we don’t like to talk about here and there so expect pure c++ programming guide with everything explained code by code and that too practically.
We are in no hurry, so we will start from Basics of Hello World in c++ and further moving to data types, variables and their scope. Further, we will look deep into the different operations that can be performed like arithmetic, logical, assignment. No programming is complete without looking into the conditional programming and loops, so we will look into IF, Else, while loop, do while loop and for loop with examples.
Then we will take a practical look into the code syntax of Object oriented programming like Classes, objects, polymorphism, abstraction and encapsulation. These are the most common terms of programming along functions that will be explained with examples. We don’t expect anything to be explained without presenting a code example.
Moving into the journey we will pass from the roads of many terms like constructors, destructors, this pointer, friend keyword, dynamic memory and namespace, we will finally move into C++ 11, which is the latest standard.
We will configure environment for c++ 11 and will take a look into most common difference introduced in c++ 11.
Installing environment for C plus plus
GCC is a compiler used to compile and run, C and C++ programs. C++ programs are known as source code and need to be converted into binaries to run. In order to do this, we need to convert source code into binaries and GCC helps us to do that.
When you want to run C++ programs, Eclipse needs a few extra steps to be performed. In this lecture you will learn those steps and from this lecture onwards, you will be able to run c++ programs on eclipse.
In this lecture we will take a look to set up our environment on MAC. We will take eclipse as our environment and will install it. After installing the eclipse, rest of the coding and code writing technique is same as on windows.
When you run your c++ programs via eclipse, you need to built your binaries because c++ is a compile language. In this lecture you will learn about building your project that is also known as compiling the project and then run the project.
We have already seen from the last movie, that how we can run a hello world program in eclipse. In this movie, we will take a closer look on each line and it's working in the c++ environment.
With c++, there are some default key words like for, int, while etc. that you cannot use in your programming. Along the learning process of coding, you will learn more about the reserve keywords. It is always recommended that you should give meaning full name to your variables to avoid confliction. There are also some rules and regulation for defining name for your variables.
Datatypes, variable and constants in c plus plus
Check the attachment in this lecture to get exercise files
C++ allows you to work with variety of data types like integer values, decimal values, string values and others. in this lecture, we will take a close look on dealing with different types of data.
Variable is a name given to fixed memory space that is reserved for one or the other data type that a programer is about to use. As the name says, variable that means that can vary. Variables can store different type of data but in c++, you have to first mention the type of data.
A variable is may or may not be accessible to different section of code. this access or restriction of variable visibility is know as variable scope. Local variable have only local scope means that can be access within the code block but global variable has access to all section of code of that program.
C++ allows you to make any variable to be acing as a constant value. In this lecture, those two methods are defined. One is using the const keyword and second is using the preprocessor statement.
Integer and float are the numerical values that are used for various calculation in programming. Character constants are some special character which when followed by back slash as a special functional symbol. for example in cout if you write back slash n, then it act as a new line character.
values in c++ can be signed and unsigned. Means that some values in c++ have positive and negative signs and some don't. It is fairly important to understand the difference between two otherwise you might change your actual value without knowing about the consequences to your code.
Operations and conditionals in C plus plus
C++ allows you to perform a variety of math operation in your code. These math operations are known as Arithmetic operations in c++. This includes addition, subtraction, multiplication, division, modulus and variety of such operations.
Relational operation in c++ are those operations that gives the idea about relation between two values, for example the relation operations might be used to check the greater value among the two operations.
AND, OR and NOT are know as logical operations in c++. These operations allows you to check two conditions at the same time. Depending on using AND or OR, you can choose which condition matters to your code the most or both condition matter to you
Assignment operation are done with operators that are made up with the help of equal operator. Apart from double equal operator, all the other operators that assigns the value in some variable, can be treated as assignment operator.
A code need to test a variety of condition and for the If and Else keywords are used. These keywords let the code to test the condition and after that, program can decide, which code block to execute and what can be left.
If and Else are great way to test the condition in programming but these are not good option when we to pass only one condition from 200 cases. For such condition, Switch and case are used. Switch and case allows you to test from several condition and if non of them is passed, you can mention the default case too.
The question mark and colon operator are treated as shorthand for If and Else operations. Although these operations are not highly qualified for much longer condition but they make short code even shorter.
Loops and loop control keywords in C plus plus
looping or iteration is a valuable technique in programming. When we want to perform a task more than once, then we can loop through that task for a particular condition. While loop is one of the basic loop to perform such iteration.
The do while loop performs the exact same task as of while loop. The only major difference is that, in while loop the condition is tested first and in do-while loop the condition is testing after the first execution. So, our loop is going to run the task at least one time.
The most famous loop of all time in C++ is for loop. It has a simpler syntax as compared to other loops. You can initialize the variable, put the condition and do the increment and decrement in same line. If you will check out the most programs in c++, for loop is the most common to be found.
Break keyword is used to throw the processing of program outside a code block. We have already seen the working of break keyword in switch and break video, but same can be used in looping too.
Continue is another important keyword used to just skip the flow of program for a particular condition. Continue just put the execution of program in the beginning for a given condition.
GOTO keyword is used to place the flow of program to a given and specific point. Goto allows to mention the tag, where you can throw the execution of program.
Functions and arrays in C plus plus
Function is a set of statements being wrapped up to be used at latter time. Use of function saves a lot of time for a programmer. You can put the working of any specific task and put that inside a function. Now, whenever you the same task to be performed, you can simple call that functionality in just one line.
Function calls are bit tricky in c++. Whenever you call any function in c++, the arguments inside that function are not passed directly, instead a copy of those arguments are passed. Thus, whenever you make any changes to those variables, change is only made to the copy of variable and original variable are still safe. To overcome this situation, we need to learn about references.
You can pass default values to be set for a particular variable via functions. In case, the user didn't passed any values to the function parameters, then you can set default values to the parameter too.
In c++, there are many default built in math functions that you can use in your programs. The typical calculation such as sine or cosine functions are present in c++. You just need to import the library functions and can use those functions in your program
Array is a sequential collection of same type of data. Array allows you to allocate sequence of memory that you can use to allocate same type of data. The lowest memory allocation is known as the first element of array and highest memory allocation is known as last member of array.
Multi dimensional array is also one the popular concept in the array. Although the memory allocates the same space as asked by the user in the form of m*n form, but user can display the array in such a manner that it gives a feel of allocating 2 or multi dimensional space from memory.
String, pointers and taking input from users in c plus plus
Strings are very powerful in c++. C++ allows you to do a variety of stuff with string by importing the string library. You can add two string that mean concatenation, you can get the first few letter of string, sum up two stings into one string and variety of such things can be performed.
Pointers are special type of variables used to hold the address values of any variable. The value of pointer is same as the value of variable because it is just pointing to the address of variable, but pointer is not directly storing that value, it is just storing the address.
If you want to store no value into the pointer then it a good practice to store NULL into the pointer. Null means nothing, not even the zero is there. But when you will try to print the value of a pointer with NULL value, it will print as zero. But in real it is just a display.
So far, we are only trying to hard code the value. That means we are not interacting with the value. C++ allows us to take the value from the user and put it into any variable. This can be done easily by the cin command.
OOPS in c plus plus
When we talk about OOP or Object Oriented Programming, Classes and Objects are obvious to be in role. Classes are the bluprint or design. Once we have design ready, we can replicate the design and create many objects from it. learn more about objects and classes in this lecture.
Since classes are the blueprint, then it is a good practice to just put some functional working into the classes. You can put the function and it's working definition into the class and can be replicated into many objects or object calls.
Let us take a look on access modifier in c++. These are Public, private and protected. These access specificiers are used to set boundaries for availability of members of class.
Constructor is a default function that is executed every time, when you create an object from an class. The name of the constructor is same as the name of class. Constructors don't have any datatype and not even void. When the object role is completed then destructor is called to destroy the object and free the memory.
Friend is a keyword in c++, when used before any function declaration in class, then that function working can be declared outside the class without making that function a member of the class.
C++ inline function is powerful concept that is commonly used with classes. If a function is inline, the compiler places a copy of the code of that function at each point where the function is called at compile time.
Every object in C++ has access to its own address through an important pointer called this pointer. Thethis pointer is an implicit parameter to all member functions. Therefore, inside a member function, this may be used to refer to the invoking object.
Inheritance, polymorphism and abstraction in c plus plus
One of the most important concepts in object-oriented programming is that of inheritance. Inheritance allows us to define a class in terms of another class, which makes it easier to create and maintain an application. This also provides an opportunity to reuse the code functionality and fast implementation time.
A C++ class can inherit members from more than one class. When there is more than one parent class for a child class is known as multiple inheritance in c++.
C++ allows you to specify more than one definition for a function name or an operator in the same scope, which is called function overloading and operator overloading respectively.
The word polymorphism means having many forms. Typically, polymorphism occurs when there is a hierarchy of classes and they are related by inheritance.
Deleting a derived class object using a pointer to a base class that has a non-virtual destructor results in undefined behavior. To correct this situation, the base class should be defined with a virtual destructor.
Encapsulation is an Object Oriented Programming concept that binds together the data and functions that manipulate the data, and that keeps both safe from outside interference and misuse. Data encapsulation led to the important OOP concept of data hiding.
This tutorial will teach you how to read and write from a file. This requires another standard C++ library called fstream, which can help you to work on files in c++.
Exceptions and memory management in c plus plus
An exception is a problem that arises during the execution of a program. A C++ exception is a response to an exceptional circumstance that arises while a program is running, such as an attempt to divide by zero.
A namespace is designed to overcome this difficulty and is used as additional information to differentiate similar functions, classes, variables etc. with the same name available in different libraries. Using namespace, you can define the context in which names are defined. In essence, a namespace defines a scope.
A good understanding of how dynamic memory really works in C++ is essential to becoming a good C++ programmer. Memory in your C++ program is divided into two parts:
- The stack: All variables declared inside the function will take up memory from the stack.
- The heap: This is unused memory of the program and can be used to allocate the memory dynamically when program runs.
C plus plus 11th version
C++ recently came up with new version c++11. This new version is very flexible and some new feature were added in the c++. In this lecture, you will learn to configure environment for C++11.
The elements are stored contiguously, which means that elements can be accessed not only through iterators, but also using offsets on regular pointers to elements. This means that a pointer to an element of a vector may be passed to any function that expects a pointer to an element of an array.
The storage of the vector is handled automatically, being expanded and contracted as needed. Vectors usually occupy more space than static arrays, because more memory is allocated to handle future growth.
This new range based for loop executes a for loop over a range.
Used as a more readable equivalent to the traditional for operating over a range of values, such as all elements in a container.
In C and C++, it's always been important to express the idea of a NULL pointer--one that has no value. Oddly, in C++, the expression used, 0 (or NULL, always #defined to zero) was not even a pointer type. Although this worked most of the time, it could lead to strange and unexpected problems in what are, admittedly, rather edge cases.
This note deals with C++11's lambda facility that allows one to write un-named functions "in place", which makes
the Standard Library algorithms much more usable. Moreover, part of the lambda concept is that variables from the
local context can be "captured" and used in the function without being passed in as parameters.
Final Brush up quiz
Thanks for taking your valuable time to take the course.
Wish you best of luck !