ตัวดำเนินการ

ในบทนี้ คุณจะได้เรียนรู้เกี่ยวกับตัวดำเนินการ (Operator) ในภาษา C++ ตัวดำเนินการถูกใช้เพื่อดำเนินการกับตัวแปรและค่าคงที่สำหรับการสร้าง Expression เพื่อทำงานโปรแกรม ในภาษา C++ มีตัวดำเนินการประเภทต่างๆ สำหรับการทำงานที่แตกต่างกันออกไป นี่เป็นตัวดำเนินการที่สำคัญที่คุณจะต้องรู้จักและจะได้เรียนในบทนี้

  • Assignment operator
  • Arithmetic operators
  • Compound assignment operators
  • Increment and decrement
  • Comparison operators
  • Logical operators
  • Conditional ternary operator
  • Bitwise operators
  • Explicit type casting operator
  • Operator precedence

Assignment operator

ตัวดำเนินการกำหนดค่านั้นแสดงโดยใช้เครื่องหมายเท่ากับ (=) มันถูกใช้เพื่อกำหนดค่าข้อมูลให้กับตัวแปรหรือค่าคงที่ในภาษา C++ ในการใช้งานตัวดำเนินการนั้นจะเป็นการนำค่าทางด้านขวาของตัวดำเนินการ กำหนดให้กับตัวแปรทางด้านซ้าย นี่เป็นตัวอย่างการใช้งาน

x = 10;
y = x;
a = b = c = 1;

ในตัวอย่าง เรามีตัวแปรสองตัวคือ x และ y เราได้กำหนดค่า 10 ให้กับตัวแปร x และเรากำหนดค่าของ x ให้กับตัวแปร y ดังนั้นทั้งตัวแปร x และ y จะมีค่าเป็น 10 และในคำสั่งสุดท้ายเป็นการกำหนดค่าให้กับหลายตัวแปรแบบในบรรทัดเดียว ซึ่งทั้งตัวแปร a b และ c นั้นต่างก็มีค่าเท่ากับ 1

Arithmetic operators ( +, -, *, /, % )

ตัวดำเนินการคณิตศาสตร์ ถูกใช้เพื่อดำเนินการเกี่ยวกับทางคณิตระหว่างตัวแปรและค่าคงที่ เช่น การบวก การลบ การคูณ และการหาร และนอกจากนี้ตัวดำเนินการในการเขียนโปรแกรมคอมพิวเตอร์นั้น ยังมีตัวดำเนินการสำหรับการหารเอาเศษ (Modulo)

ต่อไปนี้เป็นตารางแสดงตัวดำเนินการทางคณิตศาสตร์ในภาษา C++

SymbolNameExample
+Additionc = a + b
-Subtractionc = a - b
*Multiplicationc = a * b
/Divisionc = a / b
%Moduloc = a % b

ในตารางข้างบน เป็นสัญลักษณ์ ชื่อ และตัวอย่างการใช้งานของตัวดำเนินการ ต่อไปมาดูตัวอย่างของการใช้ตัวดำเนินการทางคณิตศาสตร์

#include <iostream>

using namespace std;

int main()
{
    int a = 3;
    int b = 2;
    cout << "a + b = " << a + b << endl;
    cout << "a - b = " << a - b << endl;
    cout << "a * b = " << a * b << endl;
    cout << "a / b = " << a / b << endl;
    cout << "a % b = " << a % b << endl;
    return 0;
}

ในตัวอย่าง เป็นการใช้งานตัวดำเนินการทางคณิตศาสตร์ประเภทต่างๆ เราได้ประกาศตัวแปร a และ b และกำหนดค่าให้กับตัวแปร ใน 4 คำสั่งแรกเป็นการกระทำทางคณิตศาสตร์พื้นฐานคือ การบวก การลบ การคูณ และการหาร ตามลำดับ แต่ในตัวดำเนินการสุดท้าย % หรือการหารเอาเศษ ในตัวอย่าง 3 หาร 2 นั้นได้เศษ 1 ดังนั้นคำตอบจึงเป็น 1 และเมื่อโปรแกรมรัน มันจะให้ผลลัพธ์ดังต่อไปนี้

a + b = 5
a - b = 1
a * b = 6
a / b = 1
a % b = 1

Compound assignment (+=, -=, *=, /=, %=, >>=, <<=, &=, ^=, |=)

Compound assignment operators ถูกใช้เพื่อแก้ไขค่าปัจจุบันของตัวแปรโดยการใช้ตัวดำเนินการทางคณิตศาตร์และตัวดำเนินการกำหนดค่าในเวลาเดียวกัน การทำงานของตัวดำเนินนั้นจะทำงานโดยอ้างอิงกับค่าเดิมของตัวแปร เช่น การเพิ่มหรือลดค่าจากตัวแปรเดิม นอกจากนี้มันยังใช้สำหรับการเขียนแบบสั้นของตัวดำเนินการทางคณิตศาสตร์และตัวดำเนินการระดับบิต

ต่อไปนี้เป็นตารางของตัวดำเนินการกำหนดเพิ่มค่าในภาษา C++

OperatorExampleEquivalent to
+=a += 2;a = a + 2
-=a -= 2;a = a - 2
*=a *= 2;a = a * 2
/=a /= 2;a= a / 2
%=a %= 2;a = a % 2
>>=a >>= 2;a = a >> 2
<<=a <<= 2a = a << 2
&=a & = 2;a = a & 2
^=a ^= 2;a= a ^ 2
|=a |= 2;a = a | 2

คุณจะเห็นว่าตัวดำเนินการ Compound assignment นั้นจะเป็นการรวมกันระหว่างตัวดำเนินการกำหนดค่าและตัวดำเนินการทางคณิตศาสตร์หรือตัวดำเนินการระดับบิต และมันสามารถใช้แทนตัวดำเนินการเหล่านั้นได้ในบางกรณีเพื่อทำให้การเขียนของคุณสั้นลง มาดูตัวอย่างการใช้งานในภาษา C++

#include <iostream>

using namespace std;

int main()
{
    // Using compound assessment
    // Building construction
    int floor = 0;
    cout << "Building construction" << endl;

    floor += 4;
    cout << "First day build 4 floors" << endl;
    cout << floor << " floors has been constructed" << endl;

    floor += 3;
    cout << "Second day build 3 floors" << endl;
    cout << floor << " floors has been constructed" << endl;

    floor += 3;
    cout << "Third day build 3 floors" << endl;
    cout << floor << " floors has been constructed" << endl;

    // No using compound assessment
    // Fuel using of vehicle
    float current_fuel = 100;
    cout << "\nVehicle has 100% of fuel" << endl;

    current_fuel = current_fuel - 17.2; // current_fuel -= 17.2;
    cout << "Fuel left " << current_fuel << "%" << endl;

    current_fuel = current_fuel - 20; // current_fuel -= 20;
    cout << "Fuel left " << current_fuel << "%" << endl;

    current_fuel = current_fuel + 35; // current_fuel += 35;
    cout << "Fuel left " << current_fuel << "%" << endl;

    current_fuel = current_fuel - 46.1; // current_fuel -= 46.1;
    cout << "Fuel left " << current_fuel << "%" << endl;

    return 0;
}

ในตัวอย่าง เป็นการใช้งานตัวดำเนินการ Compound assignment ในการเขียนโปรแกรมแสดงความคืบหน้าของการสร้างตึกและการใช้งานเชื้อเพลิงในถังของยานพาหนะ ในการสร้างตึกนั้นเรามีตัวแปร floor สำหรับเก็บค่าว่าสร้างตึกไปได้กี่ชั้นแล้ว ในแต่ละวันที่สร้างเสร็จ เราจะทำการบวกจำนวนชั้นที่สร้างเสร็จเพิ่มขึ้นจากค่าเดิมด้วยตัวดำเนินการ +=

และในตัวอย่างของการเชื้อเพลงนั้น เป็นการแสดงให้เห็นว่าเราสามารถที่จะใช้ตัวดำเนินการ Compound assignment เพื่อทำให้คำสั่งสั้นลงได้ ซึ่งไม่มีผลต่างกันในการทำงาน

Building construction
First day build 4 floors
4 floors has been constructed
Second day build 3 floors
7 floors has been constructed
Third day build 3 floors
10 floors has been constructed

Vehicle has 100% of fuel
Fuel left 82.8%
Fuel left 62.8%
Fuel left 97.8%
Fuel left 51.7%

นี่เป็นผลลัพธ์การทำงานเมื่อรันโปรแกรม

Increment และ decrement (++, --)

ตัวดำเนินการ Increment และ Decrement operators ถูกใช้เพื่อเพิ่มหรือลดค่าของตัวแปรทีละ 1 ตัวดำเนินการดำเนินการกับตัวแปรโดยการเพิ่ม ++ หรือ -- หลังจากตัวแปร นี่เป็นตัวอย่าง

#include <iostream>

using namespace std;

int main()
{
    int x = 1;
    int y = 5;
    x++;
    ++x;
    y--;
    cout << "x = " << x << endl;
    cout << "y = " << y << endl;
    return 0;
}

โปรแกรมจะมีผลลัพธ์ตามนี้

x = 3
y = 4

ตัวดำเนินการนี้เป็นรูปย่อของ x = x + 1 เหมือนที่คุณได้เห็นในโปรแกรม อย่างไรก็ตามมันมีข้อแตกต่างระหว่าง Prefix และ Postfix increments โดย x++ จะต้องเสร็จสิ้นคำสั่งปัจจุบันก่อนที่จะเพิ่มค่า 1 ไปยังตัวแปร x แต่ ++x จะเพิ่มค่า 1 ไปยังตัวแปร x ก่อนที่คำสั่งจะทำงาน

นอกจากนี้ การใช้งานตัวดำเนินการลบและเพิ่มที่ค่าเราใช้บ่อยๆ ในการเขียนโปรแกรมคือการใช้กับคำสั่งวนซ้ำ เพื่อเป็นตัวควบคุมการทำงานของลูป ต่อไปเป็นตัวอย่างของโปรแกรมแสดงตัวเลขด้วยคำสั่ง while loop

#include <iostream>

using namespace std;

int main()
{

    int i = 1;
    int j = 1;

    while (i <= 10)
    {
        cout << "i = " << i++ << ", j = " << ++j << endl;
    }

    return 0;
}

ในตัวอย่าง เป็นการใช้คำสั่ง while loop วนเป็นจำนวน 10 รอบสำหรับการแสดงตัวเลข เรามีตัวแปร i และ j ซึ่งถูกกำหนดค่าเป็น 1 ในตอนเริ่มต้น ในคำสังการแสดงผล cout คุณจะเห็นว่าในตัวแปร i เราแสดงผลโดยรูปแบบ Postfix i++ และในตัวแปร j เราแสดงผลโดยรูปแบบ Prefix ++j ทำให้ค่าของ j นั้นถูกเพิ่มขึ้นก่อนที่จะแสดงผล

i = 1, j = 2
i = 2, j = 3
i = 3, j = 4
i = 4, j = 5
i = 5, j = 6
i = 6, j = 7
i = 7, j = 8
i = 8, j = 9
i = 9, j = 10
i = 10, j = 11

นี่เป็นผลลัพธ์การทำงานของโปรแกรม ซึ่งคุณได้เห็นความแตกต่างอย่างชัดเจนระหว่างการใช้งานตัวเพิ่มลดค่าแบบ Prefix และ Posfix

Relational และ comparison operators ( ==, !=, >, <, >=, <= )

ตัวดำเนินการเปรียบเทียบถูกใช้ในการดำเนินการเปรียบเทียบระหว่างตัวแปร ผลลัพธ์ของตัวดำเนินการเหล่านี้จะมีแค่ true และ false อีกนัยหนึ่ง มันเป็นการเขียนโปรแกรมแบบมีเงื่อนไข ที่ใช้ในคำสั่งที่มีการเปรียบเทียบ เช่น if, for, while และ do while เป็นต้น

Relational and comparison operators table

OperaterExampleResult
==a == btrue if a equal to b, otherwise false
!=a != btrue if a not equal to b, otherwise false
<a < btrue if a less than b, otherwise false
>a > btrue if a greater than b, otherwise false
<=a <= btrue if a less than or equal to b, otherwise false
>=a >= btrue if a greater than or equal to b, otherwise false

มาดูตัวอย่างในหารใช้งานสำหรับการเปรียบเทียบค่า

int n = 5;
if (n == 5)
{
    cout << "n equal to 5";
}

นี่เรียกว่าคำสั่งเปรียบเทียบเงื่อนไข ในตัวอย่าง เราใช้ตัวดำเนินการ == เพื่อตรวจสอบว่าตัวแปร n เท่ากับ 5 หรือไม่ ถ้ามันเท่ากับ 5 เราจะแสดงผล "n equal to 5" ออกทางหน้าจอ

เพื่อให้คุณเข้าใจถึงวิธีการใช้งานมากขึ้น ต่อไปมาตัวอย่างเพิ่มเติมสำหรับการใช้งานตัวดำเนินการเปรียบ โดยเราจะเขียนโปรแกรมสำหรับบอกว่าสภาพอากาศเป็นอย่างไร โดยคำนวณจากอุณหภูมิที่รับเข้ามา

#include <iostream>

using namespace std;

int main()
{
    int degree_f, degree_c;
    string feeling;

    cout << "Enter temperature (F): ";
    cin >> degree_f;

    degree_c = (degree_f - 32) * (5 / 9.0f);
    cout << degree_f << " 'F = " << degree_c << " 'C" << endl;

    if (degree_f < 30)
    {
        feeling = "freezing";
    }
    else if (degree_f < 50)
    {
        feeling = "cold";
    }
    else if (degree_f < 70)
    {
        feeling = "cool";
    }
    else if (degree_f < 90)
    {
        feeling = "warm";
    }
    else
    {
        feeling = "hot";
    }

    cout << "Today the weather is "<< feeling << ".";

    return 0;
}

ในตัวอย่าง เป็นโปรแกรมบอกสภาพอากาศโดยคำนวณจากอุณหภูมิ โปรแกรมของเราถามให้ผู้ใช้กรอกอุณหภูมิในองศาฟาเรนไฮต์ และเราทำการคำนวณอุณภูมิสำหรับองศาเซลเซียสด้วย หลังจากนั้นเราใช้ตัวดำเนินการสำหรับเปรียบเทียบค่าของอุณหภูมิในช่วงต่างๆ ว่าอากาศนั้นเป็นแบบไหน

Enter temperature (F): 57
57 'F = 13 'C
Today the weather is cool.

นี่เป็นผลลัพธ์การทำงานของโปรแกรมเมื่อเรากรอกอุณหภูมิเป็น 57 และโปรแกรมแปลงเป็นองศาเซลเซียสเท่ากับ 13 และบอกว่าอากาศเย็นสบายดี

Logical operators ( !, &&, || )

ตัวดำเนินการตรรกะ ใช้เพื่อประเมิน Expression ของตัวแปรซึ่ง Expression สามารถประกอบไปด้วยตัวแปรเดียวหรือมากกว่า นี่เป็นตารางของตัวดำเนินการตรรกะ

SymbolNameExample
!Not! (n==1)
&&Anda == 1 && b == 1
||Ora == 1 || b == 1

ตัวดำเนินการตรรกะมักจะใช้เพื่อเปรียบเทียบและสร้างเงื่อนไข ผลลัพธ์สุดท้ายนั้นจะเป็น true หรือ false เท่านั้น มาดูตัวอย่าง

bool isRain = true;
if (!isRain)
{
    cout << "I will go to beach" ;
}

เรามีตัวแปร isRain ซึ่งเป็นตัวแปรที่ใช้บ่งบอกว่าฝนตกหรือไม่ ในคำสั่ง if (!isRain) มีความหมายคือ "if it not rain" เราจะแสดงผลข้อความ "I will go to beach" ออกทางจอภาพ

char c = 'a';
if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u')
{
    cout << "c is a vowel" ;
}

ในตัวอย่าง เรามีตัวแปร c ซึ่งสามารถเก็บค่าของตัวอักษรภาษาอังกฤษทุกตัวได้ และเราใช้ตัวดำเนินการ || (or) เพื่อเช็คว่าถ้า c เป็นสระใดๆ เราจะแสดงผลออกทางจอภาพว่า "c is vowel" อย่างไรก็ตามคุณสามารถลองใช้ตัวดำเนินการ && (and) ได้ด้วยตัวเอง

เพื่อให้คุณเข้าใจในการใช้งานตัวดำเนินการตรรกศาสตร์มากขึ้น มาดูตัวอย่างการใช้งานเพิ่มเติม เราได้พัฒนาระบบรักษาความปลอดภัยในการเข้าสู่ระบบ โดยผู้ใช้ต้องกรอกชื่อและรหัสผ่านสี่ตัวสำหรับเข้าใช้งานในระบบ นี่เป็นโค้ดของโปรแกรม

#include <iostream>

using namespace std;

int main()
{
    string name;
    int passcode;

    cout << "Enter your name >> ";
    cin >> name;
    cout << "Four digit access code >> ";
    cin >> passcode;

    if ((name == "mateo" || name == "MATEO") && passcode == 3578)
    {
        cout << "Accessing granted." << endl;
        cout << "Hello Mateo!" << endl;
    }
    else
    {
        cout << "Accessing denied." << endl;
    }

    return 0;
}

ในตัวอย่าง เป็นโปรแกรมสำหรับตรวจสอบการเข้าใช้งานระบบ ในการที่จะเข้าระบบผู้ใช้ต้องกรอกชื่อและรหัสผ่านให้ถูกต้อง และเราประกาศตัวแปร name สำหรับชื่อ passcode สำหรับรหัสผ่าน

if ((name == "mateo" || name == "MATEO") && passcode == 3578)
{
...

ระบบของเรานั้นจะอนุญาติสำหรับผู้ใช้ที่มีชื่อว่า "mateo" อย่างไรก็ตาม ผู้ใช้สามารถพิมพ์ชื่อเป็นตัวพิมพ์เล็กทั้งหมดหรือตัวพิมพ์ใหญ่ทั้งหมดเท่านั้นโดยใช้ตัวดำเนินการ || (or) เชื่อมเงื่อนไข และรหัสผ่านต้องเป็น 3578 โดยใช้ตัวดำเนินการ && (and) เพื่อเชื่อมเงื่อนไข

Enter your name >> mateo
Four digit access code >> 3578
Accessing granted.
Hello Mateo!

นี่เป็นผลลัพธ์การทำงานของโปรแกรม เมื่อเรากรอกชื่อและรหัสผ่านถูกต้อง ทำให้สามารถเข้าใช้งานระบบได้

Conditional ternary operator (?)

Conditional ternary operator ถูกใช้เพื่อประเมิน Expression โดยการใช้ตัวดำเนินการที่คุณได้เรียนไปก่อนหน้านี้แล้ว มันจะให้ผลลัพธ์เป็น true ถ้าผลลัพธ์ของ Expression เป็นจริงและจะใช้ค่า false ถ้าไม่ โดยมีรูปแบบการใช้งานดังนี้

condition ? value1: value2

Conditional ternary operator นั้นง่ายต่อการใช้ มันเป็นรูปแบบย่อของการใช้คำสั่ง if เช่น

if (n%2 == 0)
{
    cout << "n is even number.";
}
else
{
    cout << "n is odd number.";
}

// now using conditional ternary operator
cout << "n is " << (n % 2 == 0 ? "even" : "odd") << " number.";

Bitwise operators ( &, |, ^, ~, <<, >> )

Bitwise operators นั้นถูกใช้ในการดำเนินการระดับบิตของตัวแปรหรือข้อมูล มันมีประโยชน์มากในการเขียนโปรแกรมระดับต่ำ ตัวดำเนินการ Bitwise นั้นใช้หลักการทำงานเหมือนกับตัวดำเนินการทางตรรกศาสตร์ โดยใช้ 1 สำหรับค่าจริงและ 0 สำหรับค่าเท็จ

นี่เป็นรายการของตัวดำเนินการ Bitwise ในภาษา C++

SymbolNameDescription
&Bitwise AND1 ถ้าบิตทั้งคู่เป็น 1, ไม่เช่นนั้นเป็น 0
|Bitwise inclusive OR1 ถ้าอย่างน้อยหนึงบิตเป็น 1, ไม่เช่นนั้นเป็น 0
^Bitwise exclusive OR1 ถ้าทั้งสองบิตแตกต่างกัน, ไม่เช่นนั้นเป็น 0
~bit inversionกลับบิตจาก 1 เป็น 0 และในทางตรงข้าม
<<Shift bits leftเลื่อนบิตไปทางซ้าย เติมบิต 0 ทางขวา
>>Shift bits rightเลื่อนบิตไปทางขวา เติมบิต 0 ทางซ้าย

จากตารางข้างบน เป็นตัวดำเนินการประเภทต่างๆ ในภาษา C++ ที่ใช้ดำเนินการกับข้อมูลในระดับบิต ยกตัวอย่าง เช่น เมื่อเรากำหนดค่าให้กับตัวแปรนั้น คอมพิวเตอร์จะเก็บข้อมูลในรูปแบบของเลขฐานสอง (Binary) ตัวดำเนินการเหล่านี้ใช้สำหรับจัดการกับข้อมูลดังกล่าว มาดูตัวอย่างการใช้งานในภาษา C++

#include <iostream>

using namespace std;

int main()
{
    int a = 2; // 00000010
    int b = 5; // 00000101
    cout << "a & b =" << (a & b) << endl;     // 00000000 = 0
    cout << "a & b = " << (a | b) << endl;    // 00000111 = 7
    cout << "~a = " << ~a << endl;            // 11111101 = -1
    cout << "a >> 1 = " << (a >> 1) << endl;  // 00000001 = 1
    cout << "a << 1 = " << (a << 1) << endl;  // 00000100 = 8
    return 0;
}

ในตัวอย่าง เป็นโปรแกรมในการใช้งานตัวดำเนินการระดับบิตกับการจัดการข้อมูลประเภท Integer เราได้ประกาศตัวแปร a และ b และได้คอมเมนต์ค่าของ Binary ที่ถูกเก็บไว้ในหน่วยความจำ การทำงานของตัวดำเนินการ & และ | นั้นทำงานกับคู่ของแต่ละบิตของตัวแปรทั้งสอง ส่วนอีกสามตัวดำเนินการที่เหลือนั้นกระทำกับตัวแปรเดียว ในตัวดำเนินการ ~ นั้นเป็นการกลับบิต และสำหรับตัวดำเนินการ Bit shift นั้นเมื่อเลื่อนบิตไปทางซ้ายจะทำให้ค่าเพิ่มขึ้นสองเท่า และเมื่อเลื่อนบิตไปทางขวาก็จะทำให้ค่าลดลงสองเท่า

a & b = 0
a & b = 7
~a = -3
a >> 1 = 1
a << 1 = 4

นี่เป็นผลลัพธ์การทำงานของโปรแกรมของการใช้งานตัวดำเนินการระดับบิตในภาษา C++

Explicit type casting operator

ในภาษา C++ นั้นจะมีข้อมูลประเภทต่างๆ ข้อมูลบางประภทสามารถแปลงไปอีกประเภทได้โดยการใช้ Explicit type casting ข้อมูลบางประเภทจำเป็นต้องใช้ฟังก์ชันจากไลบรารี่ของภาษา C++ หรือคุณสามารถสร้างฟังก์ชันของคุณเองเพื่อแปลงข้อมูลเหล่านั้น ในตัวอย่างนี้เราจะใช้การแปลงข้อมูลแบบ Explicit type casting เพื่อแปลงค่าข้อมูลพื้นฐานเช่น Integer และ Float

float b = 10.25;
int a = (int) b;

ในตัวอย่างนี้ เราได้แปลง 10.25 ไปเป็น Integer ดังนั้นตัวแปร a จะมีค่าเป็น 10

Operator precedence

ลำดับความสำคัญของตัวดำเนินการ (Operator precedence) ใช้เพื่อกำหนดว่าตัวดำเนินการใช้ที่จะถูกทำงานก่อน ยกตัวอย่างเช่น 5 + 4 * 2 นั้นจะถูกคำนวณเป็น 5 + (4 * 2) ซึ่งเท่ากับ 13 เพราะว่าตัวดำเนินการคูณ (*) นั้นมีความสำคัญมากกว่าตัวกำเนินการบวก (+) ดังนั้นหากเราต้องการให้โปรแกรมบวกกันก่อนเราสามารถใช้วงเล็บ (5 + 4) * 2 จะได้เท่ากับ 22 เพราะว่าวงเล็บนั้นมีความสำคัญมากกว่าตัวดำเนินการคูณ (*)

ข้างล่างนี้ เป็นตารางแสดงลำดับความสำคัญของตัวดำเนินการในภาษา C++

Operator Name Associativity Operators
Primary scope resolution left to right ::
Primary left to right ()[].-> dynamic_cast typeid
Unary ขวาไปซ้าย ++--+-!~&*(type_name)sizeof new delete
C++ Pointer to Member left to right .*->*
Multiplicative ซ้ายไปขวา */%
Additive ซ้ายไปขวา +-
Bitwise Shift ซ้ายไปขวา <<>>
Relational ซ้ายไปขวา <><=>=
Equality ซ้ายไปขวา ==!=
Bitwise AND ซ้ายไปขวา &
Bitwise Exclusive OR ซ้ายไปขวา ^
Bitwise Inclusive OR ซ้ายไปขวา |
Logical AND ซ้ายไปขวา &&
Logical OR ซ้ายไปขวา ||
Conditional ขวาไปซ้าย ?:
Assignment ขวาไปซ้าย =+=-=*= /=<<=>>= %= &=^=|=
Comma ซ้ายไปขวา ,

ในบทนี้ คุณได้เรียนรู้เกี่ยวกับตัวดำเนินการในภาษา C++ เราได้อธิบายความหมายและตัวอย่างการใช้งานตัวดำเนินการประเภทต่างๆ เพื่อนำไปเขียนโปรแกรมให้ตรงกับความของการ และเราได้พูดถึงลำดับความสำคัญของตัวดำเนินการ ที่เป็นสิ่งกำหนดว่าตัวดำเนินการไหนที่จะถูกทำงานก่อน