ما الفرق بين struct و class في C++؟ متى نستخدم أيهما؟
مرحبًا أيها الزملاء!
لقد بدأت للتو في تعلم C++ ولا أستطيع فهم الفرق بين struct و class. للوهلة الأولى يبدوان متشابهين تقريبًا — كلاهما يسمح بدمج البيانات والدوال. ولكن لماذا إذن توجد كلمتان مفتاحيتان في اللغة لنفس الشيء؟
قرأت أنه في C (التي جاءت منها struct) كانت الهياكل تخزن البيانات فقط، أما في C++ فقد أضيفت إليها الدوال. لكن إليكم هذا المثال:
```cpp
struct Point {
int x, y;
void print() { cout << x << ", " << y; }
};
class Circle {
int radius;
void draw() { /* ... */ }
};
```
إذا حاولت فعل هذا:
```cpp
Point p;
p.x = 10; // يعمل
Circle c;
c.radius = 5; // خطأ! radius — private
```
لماذا أصبح radius فجأة private؟ لم أحدد شيئًا كهذا! في struct كل شيء معكوس — الحقول مفتوحة افتراضيًا