ในบทความนี้ เราจะเข้าใจความแตกต่างระหว่างอ็อบเจกต์และคลาสที่เกี่ยวกับภาษาการเขียนโปรแกรม C++
คลาสในภาษา C++
- เป็นหน่วยการสร้างของโค้ดใน C++ ที่ช่วยปรับใช้การเขียนโปรแกรมเชิงวัตถุ
- เป็นประเภทที่กำหนดโดยผู้ใช้
- มีข้อมูลสมาชิกและฟังก์ชันสมาชิกของตัวเอง
- เข้าถึงข้อมูลสมาชิกและฟังก์ชันของสมาชิกได้โดยการสร้างอินสแตนซ์ของคลาส
- สามารถใช้เพื่อจัดการตัวแปรและใช้เพื่อกำหนดคุณสมบัติเพื่อบอกว่าวัตถุในชั้นเรียนต้องดำเนินการอย่างไร
- สามารถเข้าใจได้ว่าเป็นพิมพ์เขียวสำหรับวัตถุ
- ตัวอย่าง:พิจารณาชั้นเรียนของพนักงาน อาจมีคุณลักษณะหลายอย่าง เช่น ชื่อพนักงาน อายุ วันเดือนปีเกิด ตำแหน่ง และอื่นๆ
- เรียกว่าสมาชิกข้อมูล
- ฟังก์ชันของสมาชิกอาจเป็น 'draw_salary', 'get_promotion' ซึ่งดำเนินการบางอย่างเกี่ยวกับออบเจกต์ของคลาส
- สิ่งเหล่านี้จะเป็นทรัพย์สินทั่วไปที่พนักงานทุกคนใช้ร่วมกัน
- ถูกกำหนดโดยใช้คำสำคัญ 'คลาส'
- ตามด้วยชื่อของคลาส
- เนื้อหาของคลาสถูกกำหนดไว้ในวงเล็บดอกไม้ และสิ้นสุดโดยใช้เครื่องหมายอัฒภาค
class class_name { body_of_class };
วัตถุใน C++
- อ็อบเจกต์คือตัวอย่างของคลาส
- เมื่อมีการกำหนดคลาส หน่วยความจำจะไม่ถูกจัดสรรให้กับคลาสนั้น
- ในขณะที่สร้างวัตถุ หน่วยความจำจะได้รับการจัดสรรให้กับแอตทริบิวต์ทั้งหมดของชั้นเรียน
- เมื่อมีการกำหนดคลาส ความเฉพาะเจาะจงของวัตถุจะถูกกำหนด
- หากจำเป็นต้องนำคลาสนั้นไปใช้และจำเป็นต้องดำเนินการ จะต้องสร้างวัตถุ
- ต้องสร้างวัตถุอย่างชัดเจนโดยใช้ไวยากรณ์ด้านล่าง
class_name object_name;
- สมาชิกข้อมูลและฟังก์ชันสมาชิกของคลาสสามารถเข้าถึงได้โดยอ็อบเจ็กต์โดยใช้ตัวดำเนินการจุด ('.')
- ตัวอย่าง:สมมติว่ามีการสร้างคลาสด้วยแอตทริบิวต์ที่จำเป็นและฟังก์ชันของสมาชิก
- เมื่อสร้างอ็อบเจ็กต์ที่เกี่ยวกับคลาสนั้นแล้ว ฟังก์ชันของสมาชิกสามารถเข้าถึงได้ด้วยวิธีด้านล่าง:
object_name.member_function()
- สมาชิกข้อมูลที่มีลักษณะเป็นสาธารณะสามารถเข้าถึงได้ในลักษณะเดียวกันดังที่แสดงไว้ด้านบน นั่นคือการใช้ '.' โอเปอเรเตอร์
- สมาชิกสาธารณะคือสมาชิกที่กำหนดโดยใช้คำหลัก 'สาธารณะ'
- สมาชิกส่วนตัวคือสมาชิกที่กำหนดโดยใช้คำหลัก 'ส่วนตัว'
- วัตถุไม่สามารถเข้าถึงสมาชิกเหล่านี้ได้โดยตรง
- คีย์เวิร์ด "สาธารณะ" "ส่วนตัว" และ "มีการป้องกัน" เรียกว่าการควบคุมการเข้าถึงข้อมูลของสมาชิก
- ฟังก์ชันของสมาชิกที่กำหนดไว้ภายในคลาสจะถือว่าเป็นแบบอินไลน์โดยค่าเริ่มต้น
- ฟังก์ชันอินไลน์คือฟังก์ชันที่ขยายทันทีหลังจากกำหนดฟังก์ชันแล้ว พวกมันจะถูกคัดลอกทุกที่เมื่อมีการคอมไพล์โค้ด (คล้ายกับมาโคร) ซึ่งหมายความว่าค่าใช้จ่ายในการเรียกใช้ฟังก์ชันจะลดลง
- ฟังก์ชันที่ไม่ใช่คลาสใดๆ สามารถสร้างเป็นฟังก์ชันอินไลน์ได้โดยการแนบคีย์เวิร์ด 'inline' เข้าไป