ความแตกต่างระหว่างโครงสร้างและคลาสใน 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
เป็นประเภทข้อมูลประเภทค่า เป็นประเภทข้อมูลอ้างอิง
คุณไม่สามารถสืบทอดจากโครงสร้างหรือคลาสอื่นได้ คุณสามารถสืบทอดจากโครงสร้างหรือคลาสอื่นได้
สามารถสร้างอินสแตนซ์ของวัตถุได้โดยไม่ต้องใช้คำสำคัญใหม่ สามารถสร้างอินสแตนซ์ของออบเจ็กต์โดยใช้คีย์เวิร์ดใหม่ได้
คุณไม่สามารถเปลี่ยนตัวสร้างเริ่มต้นของโครงสร้างได้ คุณสามารถเปลี่ยนคอนสตรัคเตอร์เริ่มต้นของคลาสได้
โครงสร้างไม่สามารถมีตัวทำลายได้ คลาสสามารถมีตัวทำลายได้
ในโครงสร้าง ประเภทค่าทั้งหมดจะถูกจัดสรรบนสแต็ก ในคลาส ประเภทค่าทั้งหมดจะถูกจัดสรรบนฮีป
ใช้ในโปรแกรมขนาดเล็ก ใช้ในโปรแกรมขนาดใหญ่
ฟังก์ชันสมาชิกไม่สามารถเป็นนามธรรมหรือเสมือนได้ ฟังก์ชั่นสมาชิกอาจเป็นนามธรรมหรือเสมือนก็ได้
อินสแตนซ์โครงสร้างเรียกว่า 'ตัวแปรโครงสร้าง' อินสแตนซ์คลาสเรียกว่าวัตถุ
ไม่สามารถมีค่าว่างได้ สามารถมีค่าว่างได้
ไม่สามารถเริ่มต้นตัวแปรสมาชิกโครงสร้างได้โดยตรง ตัวแปรสมาชิกคลาสสามารถเริ่มต้นได้โดยตรง
หากคุณไม่ได้ประกาศตัวระบุการเข้าถึงใดๆ แสดงว่าสมาชิกของโครงสร้างเป็นแบบสาธารณะ หากคุณไม่ได้ประกาศตัวระบุการเข้าถึงใดๆ แสดงว่าสมาชิกของคลาสเป็นแบบส่วนตัว

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

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