ความแตกต่างเพียงอย่างเดียว:
- struct: members และ base classes เป็น public โดย default
- class: members และ base classes เป็น private โดย default
นอกจากนี้ ทำงานเหมือนกันทุกประการ (functionally equivalent)
ความแตกต่างทาง semantics (การใช้งาน):
structใช้แทน data structure (เก็บข้อมูล) - passive data containerclassใช้แทน functionality/behavior - active object with invariants