العودة   منتديات عشاق السودان > منتديات الكمبيوتر والإنترنت > منتدى البرمجة
التسجيل مستضيف الصور التعليمـــات قائمة الأعضاء التقويم البحث مشاركات اليوم اجعل كافة المشاركات مقروءة

رد
 
LinkBack أدوات الموضوع طرق مشاهدة الموضوع
قديم 15-07-2005, 22:28   رقم المشاركة : 1 (permalink)
معلومات العضو
maya
عضو جديد
 
إحصائية العضو








maya غير متواجد حالياً

 

إحصائية الترشيح

عدد النقاط : 10
maya is on a distinguished road

 

 

Smile التحميل الزائد OOP

يا جماعه انا عارفه روحي شحاده شديد
بس خلاص اخر حاجه , اذا زول بعرف Oop
عندي بحث في التحميل الزائد للعناصر Over Load
maya غير متواجد حالياً   رد مع اقتباس
قديم 16-07-2005, 11:39   رقم المشاركة : 2 (permalink)
معلومات العضو
demon
عضو مميز
 
الصورة الرمزية demon
 

 

 
إحصائية العضو








demon غير متواجد حالياً

 

إحصائية الترشيح

عدد النقاط : 20
demon is on a distinguished road

 

 

Oop

بالنسبة للـOOP البرمجة الغرضية التوجه
فانتى لم تحددى عن اى لغة برمج سوف تتكلمى
على العموم الـتحميل الزائد فى البرمجة غرضية التوجع يعنى
انه يمكنك تعريف أكثر من Function ,Sub بنفس الأسم ويزجد أختلاف في عدد البرمترات أو في نوع البرميتار(Data Type) مثال
كود:
1
sub Sum(x as integer,y as integer)


end sub


2
sub  Sum(x as integer)


end sub


3

sub Sum (x as integer ,y as string)


end sub


عند الأستدعاء 
ٍSum(5)
هذا ينادي 2


Sum (5,6)

هذا ينادي 1

Sum (5,"6")
هذا ينادي 3

لمزيد من الايضاح الرجاء تحميل الكتاب التالى
مكتبة الكتب
او كتاب البرمجة الكائنية
تحميل الكتاب

لا تنسونا من دعوا صالحة

التعديل الأخير تم بواسطة : demon بتاريخ 16-07-2005 الساعة 12:49. السبب: خطاء فى المشاركة السابقة الرجاء التعديل
demon غير متواجد حالياً   رد مع اقتباس
قديم 17-07-2005, 00:51   رقم المشاركة : 3 (permalink)
معلومات العضو
maya
عضو جديد
 
إحصائية العضو








maya غير متواجد حالياً

 

إحصائية الترشيح

عدد النقاط : 10
maya is on a distinguished road

 

 

هااااااااااااااي

انا كنت عايزه برنامج بالسي بلس بلس , لي ال over load operation
لي علامات ال >= , =< .

ومرسيييي كتييييييييير عالكتاااااااااااب . بس خلاص اخر شحده اذا عندك موقع في النت فيه كلام نظري علي الموضوع ده قول لييي اوكي .
maya غير متواجد حالياً   رد مع اقتباس
قديم 17-07-2005, 19:38   رقم المشاركة : 4 (permalink)
معلومات العضو
demon
عضو مميز
 
الصورة الرمزية demon
 

 

 
إحصائية العضو








demon غير متواجد حالياً

 

إحصائية الترشيح

عدد النقاط : 20
demon is on a distinguished road

 

 

over load operation
الاخت العزيزة طلبك تحت الدراسة وسوف ارد عليك قريباً فانا لست خبير فى الـC++

بس بطلب منك تعديل عنوان المشاركةالى موضوع المشاركة
over load operation
لتعم الفائدة على كل الزوار
demon غير متواجد حالياً   رد مع اقتباس
قديم 17-07-2005, 20:24   رقم المشاركة : 5 (permalink)
معلومات العضو
طارق
المشرف العام
 
الصورة الرمزية طارق
 

 

 
إحصائية العضو









طارق غير متواجد حالياً

 

إحصائية الترشيح

عدد النقاط : 297
طارق is a jewel in the roughطارق is a jewel in the roughطارق is a jewel in the rough

 

 

تسلم اخى ديمون والاخت مايا
والاخت مايا المنتدى والمشرفين تحت الخدمه
ونشارك للاستفاده ...!!؟؟؟

التوقيع

طارق غير متواجد حالياً   رد مع اقتباس
قديم 18-07-2005, 00:30   رقم المشاركة : 6 (permalink)
معلومات العضو
maya
عضو جديد
 
إحصائية العضو








maya غير متواجد حالياً

 

إحصائية الترشيح

عدد النقاط : 10
maya is on a distinguished road

 

 

ديمون ما بعرف كيف اغيييره , لسا جديده انا , الكتابه في المنتديات يدوووب عرفتها , ورينيييي.
عارفه عزبتتتتتتتك بس لسا اوعدك حاجيب ليك وجع قلب .


عابر سبيل بجد المشاركه منورررره . وانا التحت الخدمه ,
بس سعال كده يعني
ناس المنتدي ديل ليه بتتكلموا كده , يعني ماينضمو عادي كده بالعربيييي .
حتي لطيفه بتقول . . البلدي احليي.

التعديل الأخير تم بواسطة : maya بتاريخ 18-07-2005 الساعة 00:39.
maya غير متواجد حالياً   رد مع اقتباس
قديم 18-07-2005, 16:12   رقم المشاركة : 7 (permalink)
معلومات العضو
demon
عضو مميز
 
الصورة الرمزية demon
 

 

 
إحصائية العضو








demon غير متواجد حالياً

 

إحصائية الترشيح

عدد النقاط : 20
demon is on a distinguished road

 

 

موقع الفريق العربى

اليك عزيزتى مايا
التحميل الزائد للمعاملات يعد من قمة الرفاهيات التى تعطيها لك OOP.

ما هى فكرة التحميل الزائد للمعاملات ؟
حسنا, الكل يعلم هنا ان المعملات الاساسية مثل + و - و * و ..............
كل هذه العلامات لها دلالات عند العمل على المتغيرات الرقمية.
مثلا
int x,y,z
y = x + z
فى هذا السطر تم استخدام معاملين هما + و =
فى مثل هذه الاحوال تكون قيمة y هى القيمة التى تعادل نتيجة جمع x , y

عند التعامل مع متغيرات رقمية, نستعمل هذه المعاملات بدلالاتها البدائية التى يعرفها كل منا.
لكن ماذا لو كان هناك كائن من بين هذه المعملات, كيف سيتم التعامل معه.

المعاملات و الكائنات؟
تنقسم المعاملات الى قسمين رئيسيين. القسم الاول المعاملات التى تطبق على متغيرين فقط
مثل y+=r. هذا السطر من منا لا يعؤف معناه y = y + r .
حسنا لنفرض اننا نريد ان نطور class حتى تغلف لنا مفهوم ال Matrix.
من البديهى لاى مستخدم لهذه الكلاس ان يكتب الكود التالى.

كود:
Matrix x,y;
// after the intialization of both variables
x+=y;
ماذا عن هذا المعامل += و كيف يمكن لنا ان نضيف تعريفه الى الكلاس

كود:
const Matrix& operator+=(const Matrix& m)
{
   //here implement the multiplication operation
   //  *this = *this * m

  //at the end return the same object
  return *this;
}
اذا اضفنا هذه الدالة الى الكلاس Matrix نكون قد عرفنا هذا المعامل
اما عن الاعادة الى تعيدها هذه الدالة فهى للكمال فقط, و حتى يعمل مثل هذا الس
ماهو النوع الثانى للمعاملات؟

مثال لهذا النوع نفس الكلاس Matrix لنقل اننا نريد تعريف هذا السطر

كود:
z = x + y
z = x * y
فى مثل هذه الحالات نحتاج الى دالة خارجية غير تابعة للكلاس Matrix
و هى التى تقوم بالعملية, و اذا استدعى الامر من الممكن ان تكون
كود:
 friend
const Matrix& operator + (const Matrix& m1 , const Matrix& m2 )
{
      // the matrix that contians the result
      Matrix m;
///////////////////////////////////////////////////////
/////// here set m to be eqivalent to m1+m2
///////////////////////////////////////////////////////
 return  m;

}
هذه الدالة الخاريجية سوف تضيف المعامل +
و يمكنك لن تضيف المعاملات التى تريدها بالمدخلات الى تريدها
و ذلك على حسب متطلبات الكائنات التى تتعامل معها. و مدى ارتباطها ببعضها البعض.

وكمان للمزيد
هذا العنوان فيه موضوع بعنوان
OOP البرمجة كائنية المنحى, نظرة تحليلية مفصلة
الفريق العربي
اكيد حاتلاقى حاجات مفيده كتيره فى الموضوع ده.
المصدر الفريق العربي

واهلا وسهلا بك وبمشاركاتك.



----
الاخ العزيز عابر سبيل
اهلا بك فى دارك وشكراً على مرورك و مشاركاتك

التعديل الأخير تم بواسطة : demon بتاريخ 18-07-2005 الساعة 17:39.
demon غير متواجد حالياً   رد مع اقتباس
قديم 23-07-2005, 11:35   رقم المشاركة : 8 (permalink)
معلومات العضو
maya
عضو جديد
 
إحصائية العضو








maya غير متواجد حالياً

 

إحصائية الترشيح

عدد النقاط : 10
maya is on a distinguished road

 

 

ديمون
والله ما عارفه اقول ليك شنو ؟؟
الكلام ده كان عامل لي وجع قلب , وفتشت كتيييير في النت ما لقيت الحاجه الانا عايزه.
والله شكرا كتيييييييييييييييييييير شديد.
maya غير متواجد حالياً   رد مع اقتباس
قديم 25-09-2005, 23:35   رقم المشاركة : 9 (permalink)
معلومات العضو
demon
عضو مميز
 
الصورة الرمزية demon
 

 

 
إحصائية العضو








demon غير متواجد حالياً

 

إحصائية الترشيح

عدد النقاط : 20
demon is on a distinguished road

 

 

اوكي من البداية خالص
حا نتكلم عن الـOverloading operators في الC++

التحميل الزائد للعلامات من المميزات التي تضيفها الـOOP الي لغة السي بلس فهي لم تكن موجودة في لغة سي حيث انها لم تكن معتمدة علي البرمجة كائنية التوجه.
والان دعنا نتعرف علي الـ ـOverloading operators في الC++
من الطبيعي عندما نقوم بالتعامل مع العلامات الرياضية فان كل المعاملات التي ندخلها في العملية الرياضية تكون معاملات رياضية او ارقام
بمعني انه لايجوز لنا سابقا استعمال معامل من نوع حرفي في عملية رياضية باستخدام معامل رياضى.
مثال:
كود:
int x,y,z
 y = x + z
//حيث ان قيمة y ستساوي مجموع xو  z

وقد حصرت لغة C++ المعاملات في هذه القائمة
كود:
+    -    *    /    =    <    >    +=   -=   *=   /=   <<   >>
 <<=  >>=  ==   !=   <=   >=   ++   --   %    &    ^    !    |
 ~    &=   ^=   |=   &&   ||   %=   []   ()   new  delete

المثال الاول علي استعمال الـOverloading operators
افرضي انه عندك متجهa ومتجهb وتريدي مجموع المتجهين
حيث ان المتجه a(3,1) و b(1,2)
وناتج جمع المتجهين يساوي (3+1,1+2) = (4,3)
نجد ان هذا الجمع غير جائز دون استخدام التحميل الذائد
والمثال علي ذالك
كود:
// vectors: overloading operators example
 #include <iostream.h>
 
 class CVector {
   public:
     int x,y;
     CVector () {};
     CVector (int,int);
     CVector operator + (CVector);
 };
 
 CVector::CVector (int a, int b) {
   x = a;
   y = b;
 }
 
 CVector CVector::operator+ (CVector param) {
   CVector temp;
   temp.x = x + param.x;
   temp.y = y + param.y;
   return (temp);
 }
 
 int main () {
   CVector a (3,1);
   CVector b (1,2);
   CVector c;
   c = a + b;
   cout << c.x << "," << c.y;
   return 0;
 }

OutPut:::: 4,3
الان اعتقد انه الفكرة قد اتضحت .
المصدر: http://www.cplusplus.com/doc/tutorial/tut4-2.html
وانشاء الله يكون الشرح كافي
وانا دايما في الخدمة

التوقيع

demon غير متواجد حالياً   رد مع اقتباس
رد


أدوات الموضوع
طرق مشاهدة الموضوع

تعليمات المشاركة
لا تستطيع كتابة مواضيع
لا تستطيع كتابة ردود
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة


الساعة الآن: 17:35


Powered by vBulletin® Version 3.6.8, Copyright ©2000 - 2008, Tranz By Almuhajir
جميع الآراء والتعليقات المطروحة تمثل وجهة نظر كاتبها وليس بالضرورة وجهة نظر الموقع
SudaBest.net SudaBest.net