Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

Structure vs Class ใน C++

ใน 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