Avatar ·

ما الفرق بين 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 كل شيء معكوس — الحقول مفتوحة افتراضيًا