ใน C++ Structure และ Class พื้นฐานแล้วเหมือนกัน แต่มีความแตกต่างเล็กน้อย:
สมาชิกของ Class เป็น private โดยค่าเริ่มต้น แต่สมาชิกของ Structure เป็น public โดยค่าเริ่มต้น
ตัวอย่าง Class
#include <iostream>
using namespace std;
class my_class { int x = 10; };
int main() { my_class my_ob; cout << my_ob.x; }ผลลัพธ์
Compile error: private member access
ตัวอย่าง Struct
#include <iostream>
using namespace std;
struct my_struct { int x = 10; };
int main() { my_struct my_ob; cout << my_ob.x; }ผลลัพธ์
10
เมื่อสืบทอด Struct จาก Class/Struct ค่าเริ่มต้นของ Base Class เป็น public แต่สืบทอด Class ค่าเริ่มต้นเป็น private
ตัวอย่าง Class สืบทอด Class
#include <iostream>
using namespace std;
class my_base_class { public: int x = 10; };
class my_derived_class : my_base_class {}; // private inheritance
int main() { my_derived_class d; cout << d.x; }ผลลัพธ์
Compile error: x is inaccessible
ตัวอย่าง Struct สืบทอด Class
#include <iostream>
using namespace std;
class my_base_class { public: int x = 10; };
struct my_derived_struct : my_base_class {}; // public inheritance
int main() { my_derived_struct d; cout << d.x; }ผลลัพธ์
10