C++-এ অনেক ধরণের অপারেটর রয়েছে। এগুলো को বড়ভাবে নিম্নলিখিত ক্যাটাগরিতে ভাগ করা যায়: এরিথমেটিক, রিলেশনাল, লজিক্যাল, বিটওয়ারাইজ, অ্যাসাইনমেন্ট এবং অন্যান্য অপারেটর।
এরিথমেটিক অপারেটর
ধরি ভেরিয়েবল A-র মান 10 এবং ভেরিয়েবল B-র মান 20, তবে:
| অপারেটর | বিবরণ |
|---|---|
| + | দুই অপারেন্ড যোগ করে। A + B = 30 |
| - | দ্বিতীয় অপারেন্ডকে প্রথম থেকে বিয়োগ করে। A - B = -10 |
| * | দুই অপারেন্ড গুণ করে। A * B = 200 |
| / | নিউমেরেটরকে ডিনোমিনেটর দিয়ে ভাগ করে। B / A = 2 |
| % | মডুলাস অপারেটর এবং পূর্ণসংখ্যা ভাগশেষ। B % A = 0 |
| ++ | ইনক্রিমেন্ট অপারেটর, পূর্ণসংখ্যার মান ১ বাড়ায়। A++ = 11 |
| -- | ডিক্রিমেন্ট অপারেটর, পূর্ণসংখ্যার মান ১ কমায়। A-- = 9 |
রিলেশনাল অপারেটর
ধরি ভেরিয়েবল A-র মান 10 এবং ভেরিয়েবল B-র মান 20, তবে:
| অপারেটর | বিবরণ |
|---|---|
| == | দুই অপারেন্ডের মান সমান কিনা যাচাই করে, সমান হলে কন্ডিশন সত্য। (A == B) असত্য। |
| != | দুই অপারেন্ডের মান সমান কিনা যাচাই করে, সমান না হলে কন্ডিশন সত্য। (A != B) সত্য। |
| > | বাম অপারেন্ডের মান ডান অপারেন্ডের চেয়ে বড় কিনা যাচাই করে, বড় হলে কন্ডিশন সত্য। (A > B) অসত্য। |
| < | বাম অপারেন্ডের মান ডান অপারেন্ডের চেয়ে ছোট কিনা যাচাই করে, ছোট হলে কন্ডিশন সত্য। (A < B) সত্য। |
| >= | বাম অপারেন্ডের মান ডান অপারেন্ডের চেয়ে বড় বা সমান কিনা যাচাই করে, হলে কন্ডিশন সত্য। (A >= B) অসত্য। |
| <= | বাম অপারেন্ডের মান ডান অপারেন্ডের চেয়ে ছোট বা সমান কিনা যাচাই করে, হলে কন্ডিশন সত্য। (A <= B) সত্য। |
লজিক্যাল অপারেটর
ধরি ভেরিয়েবল A-র মান 1 এবং ভেরিয়েবল B-র মান 0, তবে:
| অপারেটর | বিবরণ |
|---|---|
| && | লজিক্যাল AND অপারেটর। দুটি অপারেন্ডই নন-জিরো হলে কন্ডিশন সত্য। (A && B) অসত্য। |
| || | লজিক্যাল OR অপারেটর। যেকোনো একটি অপারেন্ড নন-জিরো হলে কন্ডিশন সত্য। (A || B) সত্য। |
| ! | লজিক্যাল NOT অপারেটর। অপারেন্ডের লজিক্যাল স্টেট বিপরীত করে। !(A && B) সত্য। |
বিটওয়ারাইজ অপারেটর
বিটওয়ারাইজ অপারেটর বিটের ওপর কাজ করে এবং বিট-বাই-বিট অপারেশন সম্পাদন করে। &, |, এবং ^-এর ট্রুথ টেবিল নিচে দেওয়া হলো:
p q p&q p|q p^q
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1
ধরি A = 60 এবং B = 13; বাইনারি ফরম্যাটে এগুলো হবে:
A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~A = 1100 0011
| অপারেটর | বিবরণ |
|---|---|
| & | বাইনারি AND অপারেটর: যদি বিট দুটি অপারেন্ডে থাকে তবে রেজাল্টে কপি করে। (A & B) = 12 (0000 1100) |
| | | বাইনারি OR অপারেটর: যদি বিট যেকোনো একটি অপারেন্ডে থাকে তবে রেজাল্টে কপি করে। (A | B) = 61 (0011 1101) |
| ^ | বাইনারি XOR অপারেটর: বিট শুধু একটি অপারেন্ডে সেট থাকলে (দুটি নয়) কপি করে। (A ^ B) = 49 (0011 0001) |
| ~ | বাইনারি Ones Complement অপারেটর: একক অপারেটর, বিট ফ্লিপ করে। (~A) = -61 (2's কমপ্লিমেন্ট ফর্মে 1100 0011) |
| << | বাইনারি Left Shift অপারেটর: বাম অপারেন্ডের মান ডান অপারেন্ড দ্বারা নির্দিষ্ট বিট সংখ্যা বামে সরানো হয়। A << 2 = 240 (1111 0000) |
| >> | বাইনারি Right Shift অপারেটর: বাম অপারেন্ডের মান ডান অপারেন্ড দ্বারা নির্দিষ্ট বিট সংখ্যা ডানে সরানো হয়। A >> 2 = 15 (0000 1111) |
অ্যাসাইনমেন্ট অপারেটর
| অপারেটর | বিবরণ |
|---|---|
| = | সিম্পল অ্যাসাইনমেন্ট অপারেটর: ডান পক্ষের মান বাম পক্ষের ভেরিয়েবলে অ্যাসাইন করে। C = A + B |
| += | Add AND অ্যাসাইনমেন্ট: ডান অপারেন্ডকে বামে যোগ করে ফলাফল বামে সংরক্ষণ করে। C += A ↔ C = C + A |
| -= | Subtract AND অ্যাসাইনমেন্ট: ডান অপারেন্ডকে বাম থেকে বিয়োগ করে ফলাফল বামে সংরক্ষণ করে। C -= A ↔ C = C - A |
| *= | Multiply AND অ্যাসাইনমেন্ট: ডান অপারেন্ডকে বাম দিয়ে গুণ করে ফলাফল বামে সংরক্ষণ করে। C *= A ↔ C = C * A |
| /= | Divide AND অ্যাসাইনমেন্ট: বাম অপারেন্ডকে ডান দিয়ে ভাগ করে ফলাফল বামে সংরক্ষণ করে। C /= A ↔ C = C / A |
| %= | Modulus AND অ্যাসাইনমেন্ট: দুটি অপারেন্ড দিয়ে মডুলাস लेकर ফলাফল বামে সংরক্ষণ করে। C %= A ↔ C = C % A |
| <<= | Left shift AND অ্যাসাইনমেন্ট। C <<= 2 ↔ C = C << 2 |
| >>= | Right shift AND অ্যাসাইনমেন্ট। C >>= 2 ↔ C = C >> 2 |
| &= | Bitwise AND অ্যাসাইনমেন্ট। C &= 2 ↔ C = C & 2 |
| ^= | Bitwise exclusive OR এবং অ্যাসাইনমেন্ট। C ^= 2 ↔ C = C ^ 2 |
| |= | Bitwise inclusive OR এবং অ্যাসাইনমেন্ট। C |= 2 ↔ C = C | 2 |
বিবিধ অপারেটর (Misc Operators)
| ক্রমিক নং | অপারেটর |
|---|---|
| 1 | sizeof অপারেটর একটি ভেরিয়েবলের সাইজ রিটার্ন করে। যেমন, sizeof(a), যেখানে 'a' ইন্টিজার, 4 রিটার্ন করবে। |
| 2 | কন্ডিশনাল অপারেটর (?:) কন্ডিশন সত্য হলে X-এর মান রিটার্ন করে, অন্যথায় Y-এর মান। |
| 3 | কমা অপারেটর অপারেশন-এর একটি সিকোয়েন্স সম্পাদন করায়। পুরো কমা এক্সপ্রেশনের মান হলো শেষ এক্সপ্রেশনের মান। |
| 4 | (ডট) এবং -> (এরো) মেম্বার অপারেটর: ক্লাস, স্ট্রাকচার এবং ইউনিয়নের ইনডিভিজুয়াল মেম্বার রেফারেন্স করতে ব্যবহৃত হয়। |
| 5 | () - কাস্টিং অপারেটর: এক ডেটা টাইপকে অন্য ডেটা টাইপে রূপান্তর করে। যেমন, int(2.2000) রিটার্ন করবে 2। |
| 6 | পয়েন্টার অপারেটর & একটি ভেরিয়েবলের অ্যাড্রেস রিটার্ন করে। যেমন &a; ভেরিয়েবলের প্রকৃত অ্যাড্রেস দেবে। |
| 7 | পয়েন্টার অপারেটর * একটি ভেরিয়েবলের পয়েন্টার। যেমন *var; var-এর পয়েন্টার। |