ความแตกต่างระหว่าง Class และ Struct ใน C++
Structures และ classes คล้ายกันมากใน C++ แตกต่างเพียงเล็กน้อย รายละเอียดความแตกต่างช่วยตัดสินใจเมื่อไหร่ควรใช้แต่ละอย่าง
ความแตกต่างหลัก
- Class: สมาชิกทุกตัวเป็น
privateโดยค่าเริ่มต้น - Struct: สมาชิกทุกตัวเป็น
publicโดยค่าเริ่มต้น
ตัวอย่าง Class
#include <iostream>
using namespace std;
class Example {
int val;
};
int main() {
Example obj;
obj.val = 20; // Error: val เป็น private
return 0;
}
โปรแกรม error เพราะ val เป็น private ไม่เข้าถึงได้โดยตรง
ตัวอย่าง Struct
#include <iostream>
using namespace std;
struct Example {
int val;
};
int main() {
Example obj;
obj.val = 20;
cout << "Value is: " << obj.val;
return 0;
}
ผลลัพธ์
Value is: 20
ทำงานถูกต้องเพราะ val เป็น public โดยค่าเริ่มต้น
ความแตกต่างอีกอย่างคือการสืบทอด (inheritance): สืบทอด class -> base class เป็น private โดยค่าเริ่มต้น สืบทอด struct -> base struct เป็น public โดยค่าเริ่มต้น