ความแตกต่างระหว่างโครงสร้างและคลาสใน C++

ความแตกต่างที่สำคัญระหว่างโครงสร้างและคลาสใน C++

  • โครงสร้างคือชนิดข้อมูลที่ผู้ใช้กำหนดซึ่งจัดกลุ่มรายการข้อมูลที่เกี่ยวข้องกันตามตรรกะ ในขณะที่คลาสคือบลูพริ้นท์ที่ใช้ในการสร้างวัตถุชนิดเฉพาะเจาะจง
  • In C++ทั้งโครงสร้างและคลาสรองรับตัวสร้างและตัวทำลายที่ผู้ใช้กำหนด
  • ความแตกต่างที่สำคัญคือสมาชิกโครงสร้างจะเป็นแบบสาธารณะตามค่าเริ่มต้น ในขณะที่สมาชิกคลาสจะเป็นแบบส่วนตัวตามค่าเริ่มต้น
  • ทั้งสองสามารถรองรับการสืบทอด รูปแบบหลายแบบ และการหุ้มห่อได้
  • โครงสร้างมักถูกใช้สำหรับการจัดกลุ่มข้อมูลอย่างง่ายpingคลาสเหมาะสำหรับพฤติกรรมและการออกแบบที่ซับซ้อนกว่า
  • การจัดสรรหน่วยความจำ (สแต็กหรือฮีป) ขึ้นอยู่กับวิธีการประกาศวัตถุ ไม่ใช่ขึ้นอยู่กับว่าเป็นคลาสหรือโครงสร้าง
  • ตัวแปรสมาชิกสามารถเริ่มต้นได้โดยตรงทั้งภายในโครงสร้างและคลาสในปัจจุบัน 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++:

โครงสร้าง ชั้น
โครงสร้างคือชนิดข้อมูลที่ผู้ใช้กำหนดซึ่งจัดกลุ่มตัวแปรที่เกี่ยวข้อง คลาสคือชนิดข้อมูลที่ผู้ใช้กำหนดซึ่งทำหน้าที่เป็นโครงร่างสำหรับอ็อบเจ็กต์
ประกาศโดยใช้ struct คำสำคัญ. ประกาศโดยใช้ class คำสำคัญ.
ตัวระบุการเข้าถึงเริ่มต้นคือ สาธารณะ. ตัวระบุการเข้าถึงเริ่มต้นคือ ส่วนตัว.
รองรับฟังก์ชันสมาชิก คอนสตรัคเตอร์ ดีสตรัคเตอร์ และการสืบทอด เช่นเดียวกับคลาส รองรับฟีเจอร์ OOP อย่างเต็มที่ เช่น ตัวสร้าง ตัวทำลาย การสืบทอด และรูปแบบต่างๆ
สมาชิกสามารถเป็นแบบส่วนตัวหรือได้รับการคุ้มครองได้ หากประกาศอย่างชัดเจน เหมือนกันที่นี่—การควบคุมการเข้าถึงได้รับการสนับสนุนอย่างเต็มที่
In C++โครงสร้างและคลาสแทบจะเหมือนกันทุกประการ ยกเว้นตัวระบุการเข้าถึงเริ่มต้น ความสามารถเท่ากัน แตกต่างกันเพียงตัวระบุการเข้าถึงเริ่มต้นเท่านั้น
มักใช้สำหรับโครงสร้างข้อมูลธรรมดา (POD: Plain Old Data) มักใช้สำหรับการออกแบบ OOP เต็มรูปแบบ
โดยทั่วไปอินสแตนซ์จะเรียกกันอย่างไม่เป็นทางการว่า “ตัวแปรโครงสร้าง” อินสแตนซ์เรียกว่าวัตถุ

คุณควรเลือกอันไหน?

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

สรุปโพสต์นี้ด้วย: