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

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

การเปรียบเทียบระหว่างคลาสกับโครงสร้างใน C ++:
ชั้น | โครงสร้าง | |
คำนิยาม | คลาสใน C ++ สามารถกำหนดเป็นชุดของตัวแปรที่เกี่ยวข้องและฟังก์ชั่นที่ห่อหุ้มในโครงสร้างเดียว | โครงสร้างสามารถถูกอ้างถึงเป็นชนิดข้อมูลที่ผู้ใช้กำหนดซึ่งมีการดำเนินการของตัวเอง |
คำสำคัญสำหรับการประกาศ | ชั้น | โครงสร้าง |
ตัวระบุการเข้าถึงเริ่มต้น | เอกชน | สาธารณะ |
ตัวอย่าง | คลาส myclass { เอกชน: ข้อมูล int; ส่วนกลาง: myclass (int data_): ข้อมูล (data_) {} virtual void foo () = 0; เสมือนคลาส ~ () {} }; | โครงสร้าง myclass { เอกชน: ข้อมูล int; ส่วนกลาง: myclass (int data_): ข้อมูล (data_) {} virtual void foo () = 0; เสมือนคลาส ~ () {} }; |
วัตถุประสงค์ | ข้อมูลนามธรรมและการสืบทอดต่อไป | โดยทั่วไปการจัดกลุ่มข้อมูล |
ชนิด | การอ้างอิง | ราคา |
การใช้ | โดยทั่วไปใช้สำหรับข้อมูลจำนวนมาก | โดยทั่วไปใช้สำหรับข้อมูลจำนวนน้อย |