What are the operators that can be and cannot be overloaded in C++?
List of operators that can be overloaded are:
+ - * / % ^ & | ~ !, = = ++ -- == != && || += -= /= %= ^= &= |= *= =  () -> ->* new new  delete delete 
Example 1 : Overloading ++ operator
Attention reader! All those who say programming isn't for kids, just haven't met the right mentors yet. Join the Demo Class for First Step to Coding Course, specifically designed for students of class 8 to 12.
The students will get to learn more about the world of programming in these free classes which will definitely help them in making a wise career choice in the future.
This function is called when ++ operator operates on the object of overload class (object i in this case). In the program, void operator ++ () operator function is defined (inside overload class). This function increments the value of count by 1 for i object.
Example 2 : Overloading ++ operator and overloading postincrement operator
output: results of I = Count: 6 results of preincrement = Count: 6 Results of post increment = Count: 8 And results of i , here we see difference : Count: 9
Example 3: Overloading this [ ] operator
Example 4 : Overloading -> operator
T.num = 5 Ptr->num = 5 T->num = 5
List of operators that cannot be overloaded
1> Scope Resolution Operator (::) 2> Pointer-to-member Operator (.*) 3> Member Access or Dot operator (.) 4> Ternary or Conditional Operator (?:) 5> Object size Operator (sizeof) 6> Object type Operator (typeid)
Example 5 : Overloading this .(dot) operator
Dot (.) operator can’t be overloaded, so it cause error.
prog.cpp:8:27: error: expected type-specifier before '.' token cantover& operator.() ^ prog.cpp:8:19: error: expected ';' at end of member declaration cantover& operator.() ^ prog.cpp:8:27: error: expected unqualified-id before '.' token cantover& operator.() ^ prog.cpp: In function 'void g(X&)': prog.cpp:13:14: error: 'void X::fun()' is private void fun(); ^ prog.cpp:18:15: error: within this context x.fun(); // X::fun or cantover::fun or error? ^
This problem can be solved in several ways. At the time of standardization, it was not obvious which way would be best.
This article is contributed by Shivani Ghughtyal. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.