ในวงการโปรแกรมมิ่ง คำว่า "Class" และ "Object" เป็นพื้นฐานสำคัญที่นักพัฒนาทั้งหลายควรเข้าใจเป็นอย่างดี แม้ว่าภาษา C จะไม่มีคลาสและอ็อบเจกต์แบบที่เห็นในภาษาโปรแกรมมิ่งที่เป็น Object-Oriented อย่าง C++ หรือ Java แต่เราสามารถจำลองลักษณะการทำงานของคลาสและอ็อบเจกต์ใน C ผ่านการใช้งาน structures และ function pointers ได้
ก่อนที่เราจะไปถึงตัวอย่าง code ซึ่งสัมพันธ์กับเรื่องที่กล่าวมาข้างต้น เราจะมาพูดถึง Class และ Object กันให้ชัดเจนก่อน
Class เป็นแม่แบบที่กำหนดฟังก์ชันและตัวแปร (attributes and methods) ที่วัตถุ (object) ที่สร้างจากคลาสนั้นจะมี นั่นคือเมื่อเราสร้างวัตถุ หรือ instance จากคลาส เราก็จะได้วัตถุที่มีลักษณะเหมือนกันออกมา
ส่วน Object หรือ Instance เป็นตัวหนึ่งที่ถูกสร้างขึ้นจากคลาส ซึ่งมีฟังก์ชันและข้อมูลส่วนตัวของตัวมันเอง มันหมายถึงอินสแตนซ์ๆ หนึ่งที่เกิดจากคลาส
Use Case ในโลกจริงของการใช้งาน concept นี้ อาจจะรวมถึงการจัดการฐานข้อมูลของพนักงานในบริษัท เราสามารถมีคลาสของ 'Employee' ที่มี attributes เช่น name, id, position และหลายๆ ฟังก์ชันที่ทำงานกับข้อมูลพนักงาน
เรามาดูกันเลยว่าเราจะจำลอง Class และ Object ในภาษา C ได้อย่างไร
ในตัวอย่างนี้เราสร้าง struct Employee ที่มีตัวแปรภายในและ function pointer สำหรับเรียกฟังก์ชัน displayInfo.
ในตัวอย่างที่ 2 เราสร้างอ็อบเจกต์สองตัวจาก struct ที่เราได้กำหนดไว้ เห็นได้ชัดว่าเราสามารถจัดการกับข้อมูลของแต่ละอ็อบเจกต์ได้อย่างอิสระ.
ใน C, ไม่มีระบบ inheritance แบบที่ภาษาชั้นสูงมี แต่เราสามารถจำลองการใช้งานได้แบบง่ายๆ โดยการใช้ struct ซ้อนกัน
สมมุติว่าเรามี Employee และเราต้องการ Programmer ที่ "สืบทอด" มาจาก Employee:
ตัวอย่างนี้แสดงให้เห็นถึงการจำลอง inheritance ใน C โดยใช้ struct ซ้อนกัน เราสามารถให้ Programmer มีลักษณะพิเศษของมันเองได้ นอกเหนือจาก Employee ทั่วไป.
การใช้ `struct` และ `function pointer` ในภาษา C เราสามารถจำลองการทำงานของ Class และ Object ได้ หากคุณสนใจที่จะขุดลึกถึงแนวคิดและการประยุกต์ใช้งานในการเขียนโปรแกรมที่ซับซ้อนยิ่งขึ้น หลักสูตรที่ EPT พร้อมจะส่งมอบความรู้นี้ให้กับคุณ ด้วยคอร์สและการฝึกอบรมที่วางแผนมาอย่างดี คุณจะเก่งขึ้นแน่นอน.
เรียนรู้จากเบื้องต้นไปจนถึงขั้นสูง พร้อมชุมชนนักพัฒนาซอฟต์แวร์ที่พร้อมสนับสนุนคุณ หากคุณพร้อมที่จะก้าวขึ้นเป็นนักพัฒนาซอฟต์แวร์ที่เชี่ยวชาญและหลงใหลในโลกของโค้ด ร่วมเรียนที่ EPT กันเถอะ!
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
Tag ที่น่าสนใจ: class object programming struct function_pointer inheritance c_programming structures method employee pointer programming_language concepts code_example
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM