C++ Tutorial Index

C++ Tutorial C++ History C++ Installation C++ First Program C++ cin and cout C++ Data type C++ Variable C++ operator C++ Keywords

C++ Control Statements

C++ If C++ Nested if C++ If-else C++ If-else-if C++ Switch C++ Break C++ Continue C++ Goto C++ For loop C++ While loop C++ Do while loop

C++ Functions

C++ Call by Value C++ Call by Reference C++ Recursion Function C++ Inline function C++ Friend function

C++ Arrays

Single dimension array Two dimension array

C++ Strings

C++ Strings

C++ Inheritance

C++ Inheritance Single level Inheritance Multilevel Inheritance Multiple Inheritance Hierarchical Inheritance Hybrid Inheritance

C++ Polymorphism

C++ Polymorphism C++ Overloading C++ Overriding C++ Virtual Function

C++ Pointers

C++ Pointers C++ this pointer

C++ Exception Handling

C++ Exception Handling

C++ Constructors

C++ Constructors Default Constructor Parameterize Constructor Copy constructor Constructor Overloading Destructor

C++ File Handling

C++ File Handling C++ Writing to file C++ Reading file C++ Close file


C Vs C++ C++ Comments C++ Data Abstraction C++ Identifier C++ Memory Management C++ Storage Classes C++ Void Pointer C++ Array To Function C++ Expressions C++ Features C++ Interfaces C++ Encapsulation std::min in C++ External merge sort in C++ Remove duplicates from sorted array in C++ Precision of floating point numbers Using these functions floor(), ceil(), trunc(), round() and setprecision() in C++ C++ References C++ Friend Functions C++ Mutable keyword Unary Operators in C++ Initialize Array of objects with parameterized constructors in C++ Differences between #define & const in C/C++ C++ Program to Implement Shell Sort C++ Program to Implement Merge Sort Storage Classes in C Vector resize() in C++ Passing by Reference Vs. Passing by the pointer in C++ Free vs delete() in C++ goto statement in C and C++ C++ program to read string using cin.getline() C++ String Concatenation Heap Sort in C++ Swap numbers in C++ Input Iterators in C++ Fibonacci Series in C++ C ++ Program: Alphabet Triangle and Number Triangle C++ Program: Matrix Multiplication C++ Program to Print Fibonacci Triangle Stack in C++ Maps in C++ Queue in C++ C++ Bitset C++ Algorithms Priority Queue in C++ C++ Multimap C++ Deque Function Pointer in C++ Sizeof() Operators in C++ C++ array of Pointers free() Vs delete in C Timsort Implementation Using C++ CPP Templates C++ Aggregation C++ Enumeration C++ Math Functions C++ Object Class C++ Queue Initialize Vector in C++ Vector in C++ C++ STL Components Function overloading in C++ C++ Maximum Index Problem C++ find missing in the second array C++ Program to find the product array puzzle C++ Program To Find Largest Subarray With 0 Sum C++ Program To Move All Zeros To The End Of The Array C++ Program to find the element that occurs once C++ Program to find the largest number formed from an array Constructor Vs Destructor C++ Namespaces C++ OOPs Concept C++ Static C++ Structs C++ Try-Catch C++ User Defined Exceptions C++ Virtual Destructor C++ vs C# Malloc() and new in C++ Palindrome Number Program in C++ Snake Code in C++ Splitting a string in C++ Structure Vs Class in C++ Virtual Function Vs Pure Virtual Function C++ Bidirectional Iterators C++ Forward Iterators C++ Iterators C++ Output Iterators C++ Range-based For Loop Converting string into integer in C++ LCM Program in C++ Type conversion in C++ Add two numbers using the function in C++ Advantage and disadvantage friend function C++ Armstrong Number Program in C++ ATM machine program in C++ using functions Binary to Decimal in C++ Bit Manipulation in C++ C++ Constructor C++ Dijkstra Algorithm Using the Priority Queue C++ int into String C++ Signal Handling Decimal to Binary in C++ Decimal to Hexadecimal in C++ Decimal to Octal in C++ Factorial Program in C++ Function in C++ Hexadecimal to Decimal in C++ Octal to Decimal in C++ Reverse a Number in C++ Structure Vs Class in C++ C++ Forward Iterators C++ Output Iterators C++ Prime number program Char Array to String in C++ Constructor Overloading in C++ Default arguments in C++ Different Ways to Compare Strings in C++ Dynamic Binding in C++ Program to convert infix to postfix expression in C++ SET Data Structure in C++ Upcasting and Downcasting in C++ Reverse an Array in C++ Fast Input and Output in C++ Delete Operator in C++ Copy elision in C++ C++ Date and Time C++ Bitwise XOR Operator Array of sets in C++ Binary Operator Overloading in C++ Binary Search in C++ Implementing the sets without C++ STL containers Scope Resolution Operator in C++ Smart pointers in C++ Types of polymorphism in C++

C++ operator

An operator is specially a symbol that tells compiler to perform specific manipulation. C++ contains various different types of operators.

Types of C++ Operators

  • Arithmetic Operators
  • Logical Operators
  • Relational Operators
  • Assignment Operators
  • Bitwise Operators
  • Misc. Operators

Arithmetic Operators

Arithmetic operators are used to perform basic mathematical operation such as addition (+), subtraction (-), multiplication (*), division (/) etc. Let's assume two variables A and B containing value 5 and 10 respectively, performs following arithmetic operations.
Operator Description Example
+ Add operation A+B gives 15
- Subtract second operand from first A-B gives -5
* Multiply operand A*B gives 50
/ Divides numerator by de-numerator B/A gives 2
% Modulus operation B%A gives 0

Logical Operators

Logical operators are used to check condition between operands such as AND (&&), OR (||) and NOT (!).

AND (&&) Operator

&& operator returns true value if all operand are true else it returns false.
A B A&&B
1 1 1
1 0 0
0 1 0
0 0 0

OR (||) Operator

|| operator returns true value if any one operand are true else it returns false.
A B A||B
1 1 1
1 0 1
0 1 1
0 0 0

NOT (!) Operator

! operator returns inverse result. If condition is true it returns false and if condition is false it returns true.
A !A
1 0
0 1

Relational Operators

Relational operator shows the relation and compare between operands. Following are the different relational operations. Let's assume two variables A and B containing value 5 and 10 respectively, performs following relational operations.
Operator Description Example
== Check equality of both operands (A==B) false
!= Check first operand is not equal to second (A!=B) true
< Check first operand is less than second (A<B) true
> Check first operand is greater than second (A>B) false
<= Check first operand is less or equal to second (A<=B) true
>= Check first operand is greater or equal to second (A>=B)false

Assignment Operators (=)

Assignment operator "=" assigns a value to another variable. The assignment of value takes from right to left.
Operator Description Example
= It simply assigns a value to variable A = 5;
+= Add and assign A += B; is equivalent to A=A+B;
-= Subtract and assign A -= B; is equivalent to A=A-B;
*= Multiply and assign A *=B; is equivalent to A=A*B;
/= Divide and assign A /=B; is equivalent to A=A/B;

Bitwise Operator

Bitwise operator works on bit. It is used to change individual bits into a number. Bitwise operators modify variable according to bit patterns. Following are the different bitwise operators:
Operator Description
& Bitwise AND
| Bitwise OR
^ Bitwise XOR
~ Bitwise NOT
<< Bitwise left shift
>> Bitwise right shift

Misc Operators

Some other misc. operators are:
Operators Description
sizeof sizeof operator
, Comma operator
cast Type cast operator
Condition ? A : B Conditional operator
& Pointer Operator
* Pointer Operator

Precedence of C++ Operators

The precedence of operator determines the sequence of operator to evaluate first. The higher precedence operator evaluate first and next. For example a statement x = 5 + 6 * 2; gives 17 not 22. This expression perform multiplication (*) operation first then addition (+), as multiplication precedence is higher than addition. Following table describe precedence of different operator.
Category Operator Associativity
Postfix () [] -> . ++ -- Left to right
Unary + - ! ~ ++ - - (type)* & sizeof Right to left
Multiplicative * / % Left to right
Additive + - Left to right
Shift << >> Left to right
Relational < <= > >= Left to right
Equality == != Left to right
Bitwise AND & Left to right
Bitwise XOR ^ Left to right
Bitwise OR | Left to right
Logical AND && Left to right
Logical OR || Left to right
Conditional ?: Right to left
Assignment = += -= *= /= %=>>= <<= &= ^= |= Right to left
Comma , Left to right