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

โครงสร้างอยู่ในอะไร. C++?
โครงสร้างเป็นประเภทข้อมูลที่ผู้ใช้กำหนดซึ่งรวมรายการข้อมูลที่เกี่ยวข้องเชิงตรรกะของประเภทข้อมูลต่างๆ เช่น float, char, int ฯลฯ เข้าด้วยกัน
องค์ประกอบโครงสร้างทั้งหมดจะถูกจัดเก็บไว้ในตำแหน่งหน่วยความจำที่อยู่ติดกัน ตัวแปรประเภทโครงสร้างช่วยให้คุณจัดเก็บรายการข้อมูลหลายประเภทข้อมูลได้มากกว่าหนึ่งรายการภายใต้ชื่อเดียว
ไวยากรณ์ของโครงสร้างใน C++
นี่คือไวยากรณ์ของโครงสร้าง:
struct struct_name { // struct data members }
ในรูปแบบข้างต้น จะใช้คีย์เวิร์ด struct struct_name คือชื่อของโครงสร้าง สมาชิก struct จะถูกเพิ่มเข้าไปในเครื่องหมายปีกกา สมาชิกเหล่านี้อาจอยู่ในประเภทข้อมูลที่แตกต่างกัน
คลาสอยู่ในอะไร C++?
คลาสคือพิมพ์เขียวหรือชุดคำสั่งในการสร้างวัตถุประเภทเฉพาะ เป็นแนวคิดพื้นฐานของการเขียนโปรแกรมเชิงวัตถุซึ่งหมุนรอบเอนทิตีในชีวิตจริง ชั้นเรียนในก ภาษาโปรแกรม กำหนดว่าวัตถุจะทำงานอย่างไรและวัตถุนั้นจะมีอะไรบ้าง
คลาสยังเป็นประเภทข้อมูลที่ผู้ใช้กำหนดซึ่งสามารถมีประเภทข้อมูลและฟังก์ชันสมาชิกต่าง ๆ ภายในเนื้อหาได้
ไวยากรณ์ของคลาสใน C++
นี่คือไวยากรณ์ของคลาส:
class class-name { // data // functions };
ในรูปแบบข้างต้น ชื่อคลาสคือชื่อที่กำหนดให้กับคลาส ข้อมูลเป็นสมาชิกของคลาส ซึ่งปกติจะประกาศเป็น ตัวแปร- ฟังก์ชันที่นี่คือฟังก์ชันคลาส
โครงสร้างเทียบกับคลาสใน C++
นี่คือความแตกต่างที่สำคัญระหว่างโครงสร้างและคลาสใน C++:
โครงสร้าง | ชั้น |
---|---|
โครงสร้างเป็นประเภทข้อมูลที่ผู้ใช้กำหนดซึ่งรวมรายการข้อมูลที่เกี่ยวข้องเชิงตรรกะของประเภทข้อมูลที่แตกต่างกัน เช่น char, float, int ฯลฯ เข้าด้วยกัน | คลาสคือพิมพ์เขียวหรือชุดคำสั่งในการสร้างวัตถุประเภทเฉพาะ |
โครงสร้างสามารถประกาศได้โดยใช้คำสำคัญ struct | สามารถประกาศได้โดยใช้คีย์เวิร์ด class |
เป็นประเภทข้อมูลประเภทค่า | เป็นประเภทข้อมูลอ้างอิง |
คุณไม่สามารถสืบทอดจากโครงสร้างหรือคลาสอื่นได้ | คุณสามารถสืบทอดจากโครงสร้างหรือคลาสอื่นได้ |
สามารถสร้างอินสแตนซ์ของวัตถุได้โดยไม่ต้องใช้คำสำคัญใหม่ | สามารถสร้างอินสแตนซ์ของออบเจ็กต์โดยใช้คีย์เวิร์ดใหม่ได้ |
คุณไม่สามารถเปลี่ยนตัวสร้างเริ่มต้นของโครงสร้างได้ | คุณสามารถเปลี่ยนคอนสตรัคเตอร์เริ่มต้นของคลาสได้ |
โครงสร้างไม่สามารถมีตัวทำลายได้ | คลาสสามารถมีตัวทำลายได้ |
ในโครงสร้าง ประเภทค่าทั้งหมดจะถูกจัดสรรบนสแต็ก | ในคลาส ประเภทค่าทั้งหมดจะถูกจัดสรรบนฮีป |
ใช้ในโปรแกรมขนาดเล็ก | ใช้ในโปรแกรมขนาดใหญ่ |
ฟังก์ชันสมาชิกไม่สามารถเป็นนามธรรมหรือเสมือนได้ | ฟังก์ชั่นสมาชิกอาจเป็นนามธรรมหรือเสมือนก็ได้ |
อินสแตนซ์โครงสร้างเรียกว่า 'ตัวแปรโครงสร้าง' | อินสแตนซ์คลาสเรียกว่าวัตถุ |
ไม่สามารถมีค่าว่างได้ | สามารถมีค่าว่างได้ |
ไม่สามารถเริ่มต้นตัวแปรสมาชิกโครงสร้างได้โดยตรง | ตัวแปรสมาชิกคลาสสามารถเริ่มต้นได้โดยตรง |
หากคุณไม่ได้ประกาศตัวระบุการเข้าถึงใดๆ แสดงว่าสมาชิกของโครงสร้างเป็นแบบสาธารณะ | หากคุณไม่ได้ประกาศตัวระบุการเข้าถึงใดๆ แสดงว่าสมาชิกของคลาสเป็นแบบส่วนตัว |
คุณควรเลือกอันไหน?
หากคุณมีหน่วยความจำขนาดใหญ่หรือต้องการใช้แนวคิดเช่นการสืบทอด คุณสามารถเลือกคลาสได้ ในทางกลับกัน โครงสร้างนี้สามารถใช้ได้เมื่อคุณมีฟิลด์หน่วยความจำขนาดเล็กหรือพื้นที่ใช้งานที่จำเป็นในการเริ่มต้นค่าเริ่มต้น