الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

[ تمت الإجابة ]طلب شرح : التراكيب في ++C

بدأه طموحة بلا حدود في 9 مارس 2013 · 4 رد · 1,210 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم اساتذتي الكرام

 

ياريت ممكن توضيح عن السجلات او التراكيب في سي++

هل يمكن ان تحتوى على دوال مع المتغيرات (الحقول) داخل السجل

 

اذا كان نعم   طيب ايش الفرق بينها وبين الclass

 

ولكم كل الشكر

كثيــــرووون هــــــــم أولئـكــــــ الـــــــذيـــن يسعــــووون جــــــاهــــــدين مــــن أجـــــل التميـــــز ولكـــــــن!!!!

هيهــــــــات فالقمــــــــة لا تتســـــع إلا لـــــــواحد ومـــــع ذالكــــــــ فلكــــــل مجتهــــــــد نصيــــب

#2
اقتباس

هل يمكن ان تحتوى على دوال مع المتغيرات (الحقول) داخل السجل

 

نعم، فقط في c++> هذا الشيء مربك لمبرمجين c++ القادمين من c، في c البنى struct تحتوي فقط على بيانات، أو مؤشرات لدوال. لكن ليس في c++، فيمكن للبنية أن تحتوي وظائف وبناء تماماً كالـclass:

 

#include <iostream>
struct StructObject {
    int member;
    StructObject(void) {
        member = 1;
    }
    int method(void) {
        std::cout << member << std::endl;
    }
};
int main(int argc, char **argv)
{
    StructObject sObject;
    sObject.method();
    return 0;
}

 

هناك فرق بين الـclass و البنى، لو كتبت:

 

struct StructObject {
    int member;
};
class ClassObject {
    int member;
};

 

إفتراضياً member في  struct StructObject "عامّة" public يمكن الوصول لها مالم تجعلها private.

إفتراضياً member في class ClassObject "خاصّة" private لايمكن الوصول لها مالم تجعلها public.

 

والباقي متشابة، أكرر فقط في c++.

 

نادراً أن يستخدم أحد البنية كـclass، بل الأغلب استخدام الـclass والبنى فقط لتخزين البيانات.

#3
اقتباس

نادراً أن يستخدم أحد البنية كـclass، بل الأغلب استخدام الـclass والبنى فقط لتخزين البيانات.

 

أيضا يتم استخدامه ليمثل abstract class او interface، العديد من مبرمجي ++c يقومموا بإنشاء مسمي اخر لـ struct و هو interface.

 

#define interface struct
#define PURE = 0

interface IFile
{
    void Open() PURE;
    void Close() PURE;
    
    bool IsReadOnly() const PURE;
    
    bool IsOpen() const PURE;
    bool IsClosed() const PURE;

    IStream Read(unsigned count) const PURE;
    ...
};

class File : public IFile
{
    ...
};

 

و الله ولي التوفيق

تم تعديل هذه المشاركة بواسطة C++er في 10 مارس 2013 في 06:38

1

مدونتي: C++ Tips and Tricks

#4
Mr.B كتب:

نادراً أن يستخدم أحد البنية كـclass، بل الأغلب استخدام الـclass والبنى فقط لتخزين البيانات.

 

معلومة جديدة

اشكرك على الموضوع

هل من الممكن القول

struct جزء من class

class ليس جزء من struct؟

 إن المعلم والطبيب كلاهمــــا ... لا ينصحـان إذا همـا لم يكرمـا 


فاصبر لدائـك إن أهنت طبيبه ... واصبــر لجهلك إن جفوت معلما

#5

أخي المقدام 

في ++C تكون struct مكافئة تماماً لـclass إلا في قضية واحدة وهي أن المحدد الافتراضي للعناصر في struct هو pubilc بينما في class فهو private

أما أن قارنت struct  الموجود في C مع class الموجود في ++C 

فيمكنك القول أن struct جزء من class لأنه يحوي المتحولات فقط بدون التوابع

 

والله ولي التوفيق

مواضيع مشابهة