Photo by Domenico Loia on Unsplash
Introduction to C++
This blog contains notes that I am taking while learning Part 1: C++ at Coding Ninjas. Don't forget to check it out
Introduction, Features and Uses of C++
Introduction
C++ is a general-purpose programming language and is widely used nowadays for competitive programming.
It has imperative, object-oriented, and generic programming features.
C++ runs on lots of platforms like Windows, Linux, Unix, Mac, etc.
It can be used to develop operating systems, browsers, games, and so on.
This makes C++ powerful as well as flexible.
You can run programs and practice them on your local desktop, Using one of these compilers: Code blocks, VS Code, Dev C++, Atom, and many more.
Features of C++
Simple
Portability
Powerful and Fast
Rich Library
Platform Dependent
Mid-level programming language
Structured programming language
Object-Oriented
Case Sensitive
Compiler Based
Syntax based language
Pointers
Dynamic Memory Management
Simple:
C++ is a simple language because it provides a structured approach (to break the problem into parts), a rich set of library functions, data types, etc.
It allows us to follow both procedural as well as functional approaches to design our flow of control.
Portability:
It is the concept of carrying the instruction from one system to another system.
In C++ language .cpp file contains source code, and we can also edit this code.
.exe file contains the application, which is the only file that can be executed. W
When we write and compile any C++ program on the Windows operating system, it efficiently runs on other window-based systems.
Powerful:
C++ is a very powerful programming language, and it has a wide variety of data types, functions, control statements, decision-making statements, etc.
C++ is a fast language as compilation and execution time is less.
Also, it has a wide variety of data types, functions & operators.
Rich Library:
C++ library is full of in-built functions that save a tremendous amount of time in the software development process.
As it contains almost all kinds of functionality, a programmer can need it in the development process.
Hence, saving time and increasing development speed.
Platform Dependent:
Platform-dependent language means the language in which programs can be executed only on the operating system where it is developed & compiled.
It cannot run or execute on any other operating system. E.g., compiled programs on Linux won’t run on Windows.
Mid-level programming language:
C++ can do both low-level & high-level programming.
That is the reason why C++ is known as a mid-level programming language.
Structured programming language:
C++ is a structured programming language as it allows to break off of the program into parts using functions.
So, it is easy to understand and modify.
Object-oriented:
C++ is an object-oriented programming language.
OOPs make development and maintenance easier.
whereas, in Procedure-oriented programming language, it is not easy to manage if code grows as project size grows.
It follows the concept of oops like polymorphism, inheritance, encapsulation, abstraction.
Case sensitive:
C++ is a case-sensitive programming language.
In C++ programming, 'break and BREAK' both are different.
Compiler-Based:
C++ is a compiler-based language, unlike Python.
C++ programs used to be compiled, and their executable file is used to run it due to which C++ is a relatively faster language than Java and Python.
Syntax-based language:
C++ is a strongly typed syntax-based programming language.
If any language follows the rules and regulations strictly, it is known as a strongly syntax-based language.
Other examples of syntax-based languages are C, C++, Java, .net etc.
Pointer:
C++ supports pointers that allow the user to deal directly with the memory and control the programmer.
This makes it very suitable for low-level tasks and very complicated projects.
It is known to increase the speed of execution by decreasing the memory access overhead.
Dynamic Memory Management:
It supports the feature of dynamic memory allocation.
In C++ language, we can free the allocated memory by calling the free() function.
These features are missing in languages like C.
Uses of C++
There are several benefits of using C++ because of its features and security.
below are some uses of C++ Programming Language
Operating Systems:
One of the key requirements of an Operating System is that it should be very fast as it is responsible for scheduling and running the user programs.
The strongly typed and fast nature of C++ makes it an ideal candidate for writing operating systems.
Also, C++ has a vast collection of system-level functions that also help in writing low-level programs.
Microsoft Windows or Mac OS X, or Linux all operating systems have some parts programmed in C++.
Games:
Again since most, games need to be faster to support smooth gameplay, C++ is extensively used in game design.
C++ can easily manipulate hardware resources, and it can also provide procedural programming for CPU-intensive functions.
Browsers:
With the fast performance of C++, most browsers have their rendering software written in C++.
Browsers are mostly used in C++ for rendering purposes. Rendering engines need to be faster in execution as most people do not like to wait for the web page to be loaded.
Libraries:
Many high-level libraries use C++ as the core programming language.
For example, TensorFlow uses C++ as the back-end programming language.
Such libraries required high-performance computations because they involve multiplications of huge matrices to train Machine Learning models.
As a result, performance becomes critical.
C++ comes to the rescue in such libraries.
Graphics:
- C++ is widely used in almost all graphics applications that require fast rendering, image processing, real-time physics, and mobile sensors.
Cloud/Distributed Systems:
Cloud storage systems use scalable file systems that work close to the hardware.
Also, the multi-threading libraries in C++ provide high concurrency and load tolerance.
Embedded Systems:
C++ is closer to the hardware level, and so it is quite useful in embedded systems as the software and hardware in these are closely coupled.
Many embedded systems use C++, Such as smartwatches, MP3 players, GPS systems, etc.
Compilers:
- Compilers of various programming languages use C++ as the back-end programming language.
How to implement a code in C++
Headers in C++
C++ code begins with the inclusion of header files.
There are many header files available in the C++ programming language.
So, what are these header files? The names of program elements such as variables, functions, classes, and so on must be declared before they can be used.
For example, you can’t just write x = 42 without first declaring variable x as:
int x = 42;
The declaration tells the compiler whether the element is an int, a double, a float, a function, or a class.
Similarly, header files allow us to put declarations in one location and then import them wherever we need them.
This saves a lot of typing in multi-file programs.
To declare a header file, we use the #include directive in every .cpp file.
This #include is used to ensure that they are not inserted multiple times into a single .cpp file.
Now, moving forward to the code:
#include <iostream>
using namespace std;
iostream stands for Input/Output stream, meaning this header file is necessary to take input through the user or print output to the screen. This header file contains the definitions for the functions:
cin: used to take input
cout: used to print output
namespace defines which input/output form is to be used. You will understand these better as you progress in the course.
Note: semicolon (;) is used for terminating a C++ statement. i.e., different statements in a C++ program are separated by a semicolon.
main() function
int main() {
Statement 1;
Statement 2;
...
}
int main()
int: This is the return type of the function. You will get this thing clear once you learn about Functions.
main(): This is the portion of any C++ code inside which all the commands are written and executed.
- This is the line at which the program will begin executing. This statement is similar to the start block of flowcharts.
{}: All the code written inside the curly braces is said to be in one block, also known as a particular function scope. Again, things will be clear once you learn about Functions
Compiler and Run
For compiling and running a CPP program in Linux following are the command lines:
Compile: g++ Filename.cpp
Run or execute: ./a.out
For compiling and running a CPP program in Windows following are the command lines:
Compile: gcc Filename.cpp
Run or execute: filename
Macros and Comments in C++
Macros in C++
Macros are a piece of code in a program that is given some name.
Whenever the compiler encounters this name, the compiler replaces the name with the actual piece of code.
The '#define' directive is used to define a macro.
Note: There is no semicolon(:) at the end of the macro definition.
#include <iostream>
using names pace std;
//macro definition
#define LIMIT 5
int main() {
for (int i 0; i < LIMIT; i++) {
cout << i <<" ";
}
return 0;
}
/* Output:
e1 2 3 4 */
Macros with arguments:
We can also pass arguments to macros.
Macros defined with arguments work similarly as functions. Example:
#include
using namespace Std;
// macrO wth parameter
#define Area(l, b)(* b)
int main() {
int l = 10, b =5, a;
a = Area(1, b);
cout << "The Area of the rectangle is: " << a;
return 0;
}
/* Output:
The area of the rectangle is: 50 */
Comments in C++
C++ comments are hints that a programmer can add to make their code easier to read and understand.
They are completely ignored by C++ compilers.
There are two ways to add comments to code:
// - Single Line Comment
/* */ - Multi-line Comments
Example: Single-line comment
#include <iostream>
using namespace std;
int main() {
// This is a comment
cout << "Hello World! ";
return 0;
}
/* Output:
Hello World */
Example: Multi-line comment
#include <iostream>
using namespace std;
int main() {
/* This is a comment will print
Hello World*/
cout << "Hello World! ";
return 0;
}
/* Output:
Hello World */
If you have read this far... Do not forget to stay tuned for Part 2 of this series.
Thank you for reading 👋