الفرق بين السجل والصف ؟؟

كل ما يتعلق بمادة البرمجة 3 من استفسارات و مناقشات و محاضرات...........

المشرف: STEEV

الفرق بين السجل والصف ؟؟

مشاركة غير مقروءةبواسطة lion of it » الجمعة يناير 14, 2011 3:14 pm

أخواني وزملائي السلام عليكم ورحمة الله

إذا ممكن تفيدونا بهالسؤال :
قرأت بسلايدات الدكتور غسان في محاضرة السجلات أنه يمكن وضع محددات الوصول (private, public,protected) ضمن السجل واستغرب هالأمر لاني لم احضر تلك المحاضرة و الأغرب أني قرأت بمرجع أنه يمكن وضع توابع friend أيضا
والسؤال الي محيرني .على هالحالة ما الفرق بين السجل والصف؟

هل هو وجود الباني (الذي يجعل المعطيات بحالة مستقرة ) وإمكانية الوراثة وتعدد الأشكال
أم يوجد ميزات أخرى للصف

وشكرا سلف
يا رب يسر لنا من أمرنا رشدا

و اجعل معونتك العالية لنا مددا

ولا تكلنا الى تدبير أنفسنا فالنفس تعجز عن اصلاح ما فسدا
صورة العضو الشخصية
lion of it
عضو جديد
عضو جديد
 
مشاركات: 30
اشترك في: الأربعاء أكتوبر 20, 2010 9:07 am
الجتس: ذكر
الشهادة الثانوية: سورية
الجامعة: جامعة دمشق
الكلية: الهندسة المعلوماتية
المرحلة الدراسية: السنة الثالثة
الاختصاص: غير ذلك

Re: الفرق بين السجل والصف ؟؟

مشاركة غير مقروءةبواسطة AbuHammzah » الجمعة يناير 14, 2011 3:28 pm

وعليكم السلام ورحمة الله وبركاته

الفرق الوحيد بين الـ struct والـ class هو أن أعضاء الـ strcut هي public by default أما أعضاء الـ class هي private by default، يعني فيك تعمل باني وvirtual وهي القصص ...

Stack Overflow

وهنا أيضاً
AbuHammzah
مشرف منتدى السوفتوير و البرمجيات
مشرف منتدى السوفتوير و البرمجيات
 
مشاركات: 578
اشترك في: السبت ديسمبر 12, 2009 2:07 pm
الجتس: ذكر
الشهادة الثانوية: سورية
الجامعة: جامعة دمشق
الكلية: الهندسة المعلوماتية
المرحلة الدراسية: متخرج

Re: الفرق بين السجل والصف ؟؟

مشاركة غير مقروءةبواسطة AbuOmar » الجمعة يناير 14, 2011 3:35 pm

AbuHammzah كتب:وعليكم السلام ورحمة الله وبركاته

الفرق الوحيد بين الـ struct والـ class هو أن أعضاء الـ strcut هي public by default أما أعضاء الـ class هي private by default، يعني فيك تعمل باني وvirtual وهي القصص ...

Stack Overflow

وهنا أيضاً

تمام :iok:
وكمان الـ class بيتميز أنو فيك تحطلوا توابع (methods) .. يعني behavior يعني operations, actions .... :ism:
صورة العضو الشخصية
AbuOmar
مشرف منتدى الاقتراحات و الدعم الفني
مشرف منتدى الاقتراحات و الدعم الفني
 
مشاركات: 406
اشترك في: الاثنين نوفمبر 30, 2009 4:00 pm
الجتس: ذكر
الشهادة الثانوية: سورية
الجامعة: جامعة دمشق
الكلية: الهندسة المعلوماتية
المرحلة الدراسية: السنة الثالثة

Re: الفرق بين السجل والصف ؟؟

مشاركة غير مقروءةبواسطة AbuHammzah » الجمعة يناير 14, 2011 3:39 pm

AbuOmar كتب:
AbuHammzah كتب:وعليكم السلام ورحمة الله وبركاته

الفرق الوحيد بين الـ struct والـ class هو أن أعضاء الـ strcut هي public by default أما أعضاء الـ class هي private by default، يعني فيك تعمل باني وvirtual وهي القصص ...

Stack Overflow

وهنا أيضاً

تمام :iok:
وكمان الـ class بيتميز أنو فيك تحطلوا توابع (methods) .. يعني behavior يعني operations, actions .... :ism:

متل الـ strcut :wink:
AbuHammzah
مشرف منتدى السوفتوير و البرمجيات
مشرف منتدى السوفتوير و البرمجيات
 
مشاركات: 578
اشترك في: السبت ديسمبر 12, 2009 2:07 pm
الجتس: ذكر
الشهادة الثانوية: سورية
الجامعة: جامعة دمشق
الكلية: الهندسة المعلوماتية
المرحلة الدراسية: متخرج

Re: الفرق بين السجل والصف ؟؟

مشاركة غير مقروءةبواسطة AbuOmar » الجمعة يناير 14, 2011 3:59 pm

AbuHammzah كتب:
AbuOmar كتب:
AbuHammzah كتب:وعليكم السلام ورحمة الله وبركاته

الفرق الوحيد بين الـ struct والـ class هو أن أعضاء الـ strcut هي public by default أما أعضاء الـ class هي private by default، يعني فيك تعمل باني وvirtual وهي القصص ...

Stack Overflow

وهنا أيضاً

تمام :iok:
وكمان الـ class بيتميز أنو فيك تحطلوا توابع (methods) .. يعني behavior يعني operations, actions .... :ism:

متل الـ strcut :wink:

بالله فيك تحط هي الشغلات بالـ struct :???:

سيدي .. بشوفها بعدين .. :ism:
صورة العضو الشخصية
AbuOmar
مشرف منتدى الاقتراحات و الدعم الفني
مشرف منتدى الاقتراحات و الدعم الفني
 
مشاركات: 406
اشترك في: الاثنين نوفمبر 30, 2009 4:00 pm
الجتس: ذكر
الشهادة الثانوية: سورية
الجامعة: جامعة دمشق
الكلية: الهندسة المعلوماتية
المرحلة الدراسية: السنة الثالثة

Re: الفرق بين السجل والصف ؟؟

مشاركة غير مقروءةبواسطة Mohammad_807 » الجمعة يناير 14, 2011 4:02 pm

في فرق مهم كتيير كتيير هو أنو Class is Reference Type but Struct is Value Type
يعني طريقة الحجز بالذاكرة كتيير مهمة وطريقة التمرير لل Methods هي الأهم .
Mohammad_807
مشرف منتدى البرمجة العام
مشرف منتدى البرمجة العام
 
مشاركات: 635
اشترك في: الأحد مارس 09, 2008 4:29 pm
الجتس: ذكر
الشهادة الثانوية: سورية
الجامعة: جامعة دمشق
الكلية: الهندسة المعلوماتية
المرحلة الدراسية: السنة الخامسة
الاختصاص: شبكات و نظم

Re: الفرق بين السجل والصف ؟؟

مشاركة غير مقروءةبواسطة nero » الجمعة يناير 14, 2011 4:07 pm

Mohammad_807 كتب:في فرق مهم كتيير كتيير هو أنو Class is Reference Type but Struct is Value Type
يعني طريقة الحجز بالذاكرة كتيير مهمة وطريقة التمرير لل Methods هي الأهم .


ممكن توضيح شوي اكتر اخ محمد

يعني كيف بينحجز الclass بالذاكرة وال struct شو الفرق بالحجز؟؟؟؟؟؟؟
nero
عضو جديد
عضو جديد
 
مشاركات: 64
اشترك في: الاثنين أكتوبر 04, 2010 6:19 pm
الجتس: ذكر
الشهادة الثانوية: سورية
الجامعة: جامعة دمشق
الكلية: الهندسة المعلوماتية
المرحلة الدراسية: غير ذلك
الاختصاص: ذكاء صنعي

Re: الفرق بين السجل والصف ؟؟

مشاركة غير مقروءةبواسطة Mohammad_807 » الجمعة يناير 14, 2011 9:43 pm

nero كتب:
Mohammad_807 كتب:في فرق مهم كتيير كتيير هو أنو Class is Reference Type but Struct is Value Type
يعني طريقة الحجز بالذاكرة كتيير مهمة وطريقة التمرير لل Methods هي الأهم .


ممكن توضيح شوي اكتر اخ محمد

يعني كيف بينحجز الclass بالذاكرة وال struct شو الفرق بالحجز؟؟؟؟؟؟؟

الحقيقة على حسب طريقة حجز الذاكرة :
يعني مثلاً كلي شيClass هو Refernce Type أول شي يُفترض تعرف شو يعني Reference (يعني Pointer بس ما بيقبل جمع وطرح وكل التخبيصات تبع البرمجة 3 وهاد ال Reference هو عنوان على غرض بالذاكرة هلأ ال Reference بيتخزن بال Stack والغرض (object ) بيتخزن بال Heap )
أما الValue Type مثل كل المتحولات ال Primitives مثل int ,double ,.... , بالإضافة إلى ال Struct هي كمان Value Type
وهي ال Value Type يتم تخزينها ضمن ال Stack (يعني هون لا في pointer ولا Reference ولا شي )
ملاحظة :
1- ال Stack منطقة سريعة وصغيرة
2- ال Heap منطقة كبيرة وبطيئة
وكمان طريقة التمرير للmethods كمان بتختلف متل ال C++ التمرير بالقيمة والتمرير بالمرجع .
- بس تتعلم Javaأو C# أو شي لغة برمجة محترمة فيك تقرأ مواضيع إدارة الذاكرة وكيفية الحجز (ما بيحكو عنها كتيير بالكلية بقا بدك تقرأ لحالك).
- وعلى فكرة الReference Type و ال Value Type هنن مواضيع خطيرة بالكومبايلر (رفيقي كان علقان بوظيفة الكومبايلر على هالقصة) .
Mohammad_807
مشرف منتدى البرمجة العام
مشرف منتدى البرمجة العام
 
مشاركات: 635
اشترك في: الأحد مارس 09, 2008 4:29 pm
الجتس: ذكر
الشهادة الثانوية: سورية
الجامعة: جامعة دمشق
الكلية: الهندسة المعلوماتية
المرحلة الدراسية: السنة الخامسة
الاختصاص: شبكات و نظم

Re: الفرق بين السجل والصف ؟؟

مشاركة غير مقروءةبواسطة MhdSyrwan » الجمعة يناير 14, 2011 9:53 pm

هلأ هاد الكلام انا قرأته بالـC#‎ بس فكرته خاص ببيئة الدوت نت
طيب سؤال :
إذا كتبنا بالسي هيك
CODE: تحديد الكل
 myClass a;
 myClass b;
 b=a;

مو لازم يفهمها على إنها إسناد بالمرجع(Reference) ؟؟

ومثلاً هاد الكود :
CODE: تحديد الكل
 myClass &a = MyClass();

بكون هاد Reference of Reference ولا شو ؟
لا حول ولا قوة إلا بالله


صورة العضو الشخصية
MhdSyrwan
عضو فعال
عضو فعال
 
مشاركات: 506
اشترك في: الأحد أكتوبر 04, 2009 11:28 pm
الجتس: ذكر
الشهادة الثانوية: سورية
الجامعة: جامعة دمشق
الكلية: الهندسة المعلوماتية
المرحلة الدراسية: السنة الثالثة

Re: الفرق بين السجل والصف ؟؟

مشاركة غير مقروءةبواسطة MhdSyrwan » الجمعة يناير 14, 2011 10:24 pm

AbuOmar كتب:
AbuHammzah كتب:وعليكم السلام ورحمة الله وبركاته

الفرق الوحيد بين الـ struct والـ class هو أن أعضاء الـ strcut هي public by default أما أعضاء الـ class هي private by default، يعني فيك تعمل باني وvirtual وهي القصص ...

Stack Overflow

وهنا أيضاً

تمام :iok:
وكمان الـ class بيتميز أنو فيك تحطلوا توابع (methods) .. يعني behavior يعني operations, actions .... :ism:

طيب شو رأيكم أنو هاد الكود شغال :
CODE: تحديد الكل
struct Complex
{
   int a;
   int b;
   Complex(int aa,int bb)
   {
      a=aa;
      b=bb;
   }
   Complex operator +(Complex& other)
   {
      return Complex(a+other.a,b+other.b);
   }

};
لا حول ولا قوة إلا بالله


صورة العضو الشخصية
MhdSyrwan
عضو فعال
عضو فعال
 
مشاركات: 506
اشترك في: الأحد أكتوبر 04, 2009 11:28 pm
الجتس: ذكر
الشهادة الثانوية: سورية
الجامعة: جامعة دمشق
الكلية: الهندسة المعلوماتية
المرحلة الدراسية: السنة الثالثة

Re: الفرق بين السجل والصف ؟؟

مشاركة غير مقروءةبواسطة MhdSyrwan » الجمعة يناير 14, 2011 10:46 pm

حتى طلع بياخد وراثة :mrgreen:
يعني هاد شغال كمان
CODE: تحديد الكل
struct base
{
   int c;
};
struct Complex : base
{
   int a;
   int b;
   Complex(int aa,int bb)
   {
      a=aa;
      b=bb;
   }
   Complex operator +(Complex& other)
   {
      return Complex(a+other.a,b+other.b);
   }
   void print()
   {
      cout << "Hi ";
   }
};
لا حول ولا قوة إلا بالله


صورة العضو الشخصية
MhdSyrwan
عضو فعال
عضو فعال
 
مشاركات: 506
اشترك في: الأحد أكتوبر 04, 2009 11:28 pm
الجتس: ذكر
الشهادة الثانوية: سورية
الجامعة: جامعة دمشق
الكلية: الهندسة المعلوماتية
المرحلة الدراسية: السنة الثالثة

Re: الفرق بين السجل والصف ؟؟

مشاركة غير مقروءةبواسطة MBM-Z » السبت يناير 15, 2011 3:36 pm

بس تنبيه:
بالـ c++ ما في فرق بين ال class وال struct من ناحية ال reference or value type

كل شيء ينشىء باستخدام new هو reference type
والباقي هو value type

AbuHammzah كتب:الفرق الوحيد بين الـ struct والـ class هو أن أعضاء الـ strcut هي public by default أما أعضاء الـ class هي private by default

:iok:

أما بال c# مع أنو منستخدم new لإنشاء struct فهو value type
صورة العضو الشخصية
MBM-Z
عضو جديد
عضو جديد
 
مشاركات: 134
اشترك في: الثلاثاء فبراير 26, 2008 3:45 pm
الجتس: ذكر
الشهادة الثانوية: سورية
الجامعة: جامعة دمشق
الكلية: الهندسة المعلوماتية
المرحلة الدراسية: السنة الخامسة
الاختصاص: هندسة برمجيات

Re: الفرق بين السجل والصف ؟؟

مشاركة غير مقروءةبواسطة lion of it » الخميس يناير 20, 2011 11:41 pm

شكرا لكل الأعضاء إلي شاركو بالموضوع وفادونا

بس للأسف لم يتم الجواب على صلب سؤالي وللتوضيح إلي بدو قولو
لما كل هالقصص موجودة بالسجل أي موجودة بلغة ال c فما الفائدة من إضافة مفهوم الكلاس هل هو فقط لتغيير نمط الحجز بالذاكرة ....معقول ؟ :vma:
يا رب يسر لنا من أمرنا رشدا

و اجعل معونتك العالية لنا مددا

ولا تكلنا الى تدبير أنفسنا فالنفس تعجز عن اصلاح ما فسدا
صورة العضو الشخصية
lion of it
عضو جديد
عضو جديد
 
مشاركات: 30
اشترك في: الأربعاء أكتوبر 20, 2010 9:07 am
الجتس: ذكر
الشهادة الثانوية: سورية
الجامعة: جامعة دمشق
الكلية: الهندسة المعلوماتية
المرحلة الدراسية: السنة الثالثة
الاختصاص: غير ذلك

Re: الفرق بين السجل والصف ؟؟

مشاركة غير مقروءةبواسطة PrinceOfDarkness » الجمعة يناير 21, 2011 12:00 am

lion of it كتب:شكرا لكل الأعضاء إلي شاركو بالموضوع وفادونا

بس للأسف لم يتم الجواب على صلب سؤالي وللتوضيح إلي بدو قولو
لما كل هالقصص موجودة بالسجل أي موجودة بلغة ال c فما الفائدة من إضافة مفهوم الكلاس هل هو فقط لتغيير نمط الحجز بالذاكرة ....معقول ؟ :vma:

حدا يصلحلي اذا مخربط.
الـ struct هو من متخلفات لغة الـ c
ماكان ومالازم يكون فيو وراثة ولا تعددية الاشكال .
بيحتوي فقط على fields وـmethods
c++ بتدعم البرمجة غرضية التوجه ومشان هيك انضاف مفوم الكلاس وانضافاة معو الواراثة
عم يقولو الشباب انو الـ struct عم يقدر يعمل وراثة فهون في تفسيرين واجد منهون الصح .
1: اذا الكومبايلر دعم الوراثة بالـ struct بهذا خروج عن الستاندرد ومالو الشي صح (اكيد الهون اسبابهون بس مثل ماقلت الستاندرد بيقول غير هيك )
2: لغة c++ تطورت على حد علمي 3 مرات
1998 , 2002 , 2011 (اي بعرف هي السنة والستاندرد الجديد اسمو c++0x بتوقع بشهر اذار اخر اجتماع لح يصير مشان يتوافق على الستاندرد الجديد والخدمات الجديدة يلي لح تحتويها هي اللغة العريقة ) (مالي متاكد من التواريخ بس هنن 3 على حد علمي )
المهم الستاندرد الاول اكيد كان بنص انو الـ struct ما بيحتوي على وراثة . بس بيجوز هذا الحكي تغير بشي تحديق لاحق
_____
بتمنى كون جاوبت على سؤالك

Be the broken or the breaker
Be the giver or the undertaker
Unlock and open the door
Be the healer or the faker
The keys are in your hands
Realize you are your own sole creator
Of your own master plan
صورة العضو الشخصية
PrinceOfDarkness
متميز برمجة عام
متميز برمجة عام
 
مشاركات: 440
اشترك في: الجمعة أكتوبر 17, 2008 11:19 pm
مكان: try to guess
الجتس: ذكر
الشهادة الثانوية: سورية
الجامعة: جامعة دمشق
الكلية: الهندسة المعلوماتية
المرحلة الدراسية: السنة الرابعة
الاختصاص: ذكاء صنعي

Re: الفرق بين السجل والصف ؟؟

مشاركة غير مقروءةبواسطة MBM-Z » الجمعة يناير 21, 2011 12:07 am

lion of it كتب: هل هو فقط لتغيير نمط الحجز بالذاكرة ....معقول ؟ :vma:

أنا وضحت بردي الأخير أنو الفرق الوحيد بين الـ struct والـ class هو أن أعضاء الـ strcut هي public by default أما أعضاء الـ class هي private by default
يعني شغلة طريقة الحجز بالذاكرة ما بتختلف بين السجل والصف

أما c# فيها فرق في نمط الحجز بين الصف والكلاس

lion of it كتب: لما كل هالقصص موجودة بالسجل أي موجودة بلغة ال c

هي القصص ومفهوم الوراثة وال modifiers مو موجودة بال c
وإنما بس بال c++

ال c++ أضافت مفهوم الصف ووسعت السجل

طيب ليش تركت السجل باللغة إذا كان متل الصف؟
مشان backward compatibilities مع البرامج المكتوبة بلغة c
لأنو كل برنامج c لازم يكون مقبول بلغة c++
صورة العضو الشخصية
MBM-Z
عضو جديد
عضو جديد
 
مشاركات: 134
اشترك في: الثلاثاء فبراير 26, 2008 3:45 pm
الجتس: ذكر
الشهادة الثانوية: سورية
الجامعة: جامعة دمشق
الكلية: الهندسة المعلوماتية
المرحلة الدراسية: السنة الخامسة
الاختصاص: هندسة برمجيات

Re: الفرق بين السجل والصف ؟؟

مشاركة غير مقروءةبواسطة محمود البح » الجمعة ديسمبر 06, 2013 2:07 am

يمكنكم الحصول على كل ما تريدوه من
http://www.fedv.bu.edu.eg/
محمود البح
عضو جديد
عضو جديد
 
مشاركات: 45
اشترك في: الجمعة ديسمبر 06, 2013 1:29 am
الجتس: ذكر
الشهادة الثانوية: مصريه
الجامعة: جامعةبنها
الكلية: التربيه النوعيه
المرحلة الدراسية: السنة الأولى
الاختصاص: شبكات و نظم


العودة إلى البرمجة 3

الموجودون الآن

المستخدمون المتصفحون لهذا المنتدى: لا يوجد أعضاء مسجلين متصلين و 1 زائر