التواصل المباشر مع الادارة والاعضاء القدامى من خلال قناة التلغرام



العودة   :: vBspiders Professional Network :: > [ ::. قسم البرمجة ولغاتها .:: ] > قسم البرمجة الكائنية

إضافة رد
 
LinkBack أدوات الموضوع انواع عرض الموضوع
قديم 03-05-2009, 10:58 PM   رقم المشاركة : 1 (permalink)
معلومات العضو
 
الصورة الرمزية GoLdeN-z3r0
 

 

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






GoLdeN-z3r0 غير متواجد حالياً

 

 

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

عدد النقاط : 10
GoLdeN-z3r0 is on a distinguished road

افتراضي 1 - classes الأصناف


البرمجة كائنية التوجه في لغة ++C


يعتبر الصنف حجر الأساس في البرمجة كائنية التوجه(OOP) حيث نعرف الصنف بأنه طريقة منطقية لترتيب المعطيات مع التوابع العاملة عليها ضمن بنية واحدة. يجري التصريح عن الصنف باستخدام الكلمة المفتاحيةclass ذات الآداء المشابه للكلمة struct المأخوذة من الللغة الأمC لكن الصنف يختلف عن البنية بإمكانية احتوائه لتوابع(مناهج) بالإضافة إلى حقول المعطيات(تتشابه وظيفة الكمتينclass و struct في لغة ++C في كل شيء تقريبا مع فرق بسيط جدا بينهما ننوه عليه في نهاية الفصل). يبدو سياق التصريح عن صنف كما يلي:
class class_name{
permission_labl_1:
member;
permission_label_2:
member2;
...
} object_name;



حيث:
class_name اسم الصنف الجديد(نمط جديد من صنع المبرمج).
object_name اسم كائن من الصنف الجديد.
memberN عناصر الصنف الجديد والتي قد تكون حقول معطيات أو توابع(مناهج methods).
Permission_label_N علامة اختيارية قد تكون واحدة من الكلمات المفتاحية الثلاث التالية: private، public، protected. حيث تحدد هذه الكلمة مستوى سماحية الوصول إلى العناصر التالية لورودها. ونستطيع الوصول إلى العناصر التالية للكلمة:
private من العناصر الأخرى الموجودةضمن الصنف نفسه، أو من أحد الأصناف الأصدقاء(friend) للصنف الحالي (سنتحدث عن أصدقاء الصنف لاحقا).
protected من عناصر الصنف نفسه الأخرى، ومن عناصر الأصناف الأصدقاء، ومن عناصر الأصناف الأبناء للصنف الحالي.
public من أي مكان يرى الصنف الحالي.

أما إذا تم التصريح عن عناصر صنف دون أن نضع قبلها أيا من محددات الوصول السابقة، فستعتبر هذه العناصر خاصةprivate، وهو مستوى الوصول الافتراضي لكل صنف مصرح باستخدام الكلمة لمفتاحية class. مثال:
class CRectangle{
int x,y;
public:
void set_values(int,int);
int area (void);
}rect;

صرح التعليمات السابقة عن صنف جديد اسمه CRectangle، وكائن من نمط هذا الصنف الجديد اسمه rect. يحتوي هذا الصنف اربعة عناصر: متحولان من النمط int وهم: xوy وموجودان في قسم العناصر الخاصةprivate (لا تنس أن مستوى الوصول الإفتراضي في الأصناف هو private)، ومنهجان موجودان في قسم العناصر العامةpublic وهما()area و()set_value، حيث كتبنا ترويستيهما فقط.
يجب عليك التمييز بين اسم الصنف وكائناته، فلقد استخدمنا في التعليمات السابقة الكلمة CRetangle لتسمية الصنف، واستخدمنا الكلمةrect لتسمية كائن من الصنف CRectangle. وذلك يكافىء الفرق بين intوa المستخدمين في التصريح التالي:
كود:
int a;

نستخدم أيا من مناهج أو حقول الكائن rect العامة في التعليمات التالية لتعريفه كما لو كانت توابعا أو متحولات عادية، إلا أننا نسبقها باسم الكائن ونقطة(.) قل كتابة اسم المنهج أو الحقل (تماما كما كنا نفعل مع struct). مثال:
كود:
rect.set_values (3,4);
myarea = rect.area();

لكننا لا نستطيع استخدام أيا من xأوy لأنها حقلان خاصان من الصنف ولا يمكن الوصول إليهما إلا من عناصر الصنف نفسه. أرجو أن لا تكون قد تشوشت، وإليك على كل حال المثال الكامل للصنف CRectangle:

كود:
// classes example
#include <iostream.h>

class CRectangle{
int x,y;
public:
void set_values(int,int);
int area (void) {return (x*y)};
};
void CRectangle::set_values(int a, int b) {
x=a;
y=b;
}
int main() {
CRectangle rect;
rect.set_values (3,4);
cout<<"area:"<<rect.area();
}
Output:
area:12

لقد ظهر عامل جديد في هذا البرنامج وهو ( :: ) عامل مجال الرؤية والمستخدم في تعريف المنهج ()set_values. لقد استخدمنا هذا العامل لتعريف أحد عناصر الصنف خارج الصنف. لاحظ كيف عرفنا سلوك المنهج ()area أثناء تعريف الصنف CRectangle، في حين لم نضع سوى ترويسة المنهج ()set_value داخل صنفه ووضعنا التعريف الحقيقي له خارج صنفه، ولذلك كان علينا استخدام عامل مجال الرؤية( :: ) في هذا التعريف الخارجي.
يحدد عامل الرؤية( :: ) مرجعية العنصر المصرح عنه لصنفه، ويؤدي إلى الدخول في نفس مجال الرؤية كما لو ان التصريح عن هذا العنصر يجري داخل صنفه مباشرة. فلقد استخدمنا على سبيل المثال المتحولين xوy (وهما عنصران من الصنف CRectangle) داخل المنهج ()set_values، مع أن هذين العنصرين مرئيان فقط داخل صنفهما ومن قبل عناصره الاخرى لأنهما عنصران خالصان private.
يختلف التصريح عن المناهج داخل أصنافها بشكل كامل عن كتابة ترويساتها فقط داخل الصف من ناحية الترجمة، حيث يعتبر المترجم الشكل الأول من المناهج بأنها مناهج سطرية inline بشكل افتراضي ودون ان يذكر المبرمج ذلك صراحة، وسيعتبر الشكل الآخر مناهج عادية(غير سطرية).
لقد جعلنا كلا المتحولين Xوy حقلين خاصين(تذكرة: تعتبر جميع عناصر صنف التي لا يسبقها محدد مستوى وصول بأنها عناصر خاصة private) ولم يكن هذا العمل اعتباطيا، فلقد قدمنا مناهج عامة كافية للتعامل مع هذين الحقلين، فنستخدم المنهج ()set_value لتعيير قيمتيهما وهذا يفيد بمنع التغيير المباشر لهاتين القيميتن من قبل مستخدمي الصنف. قد لا تتجلى اهمية حجب الحقلين xوy عن الوصول المباشر للمستخدم لهما في هذا المثال، ولكن تظهر أهمية الحجب في البرامج الحقيقية والتي يفرض فيها قيود على بعض الحقول بأن لا تاخذ قيما معينة، بالتالي يجري التحقق من صحة القيمة المسندة عبر تعليمات مهج الإسناد الخاص بالحقل.
نستطيع إنشاء عدة كائمنات من أي صنف بعد التصريح عنه، ويكون لكل منهما مكان تخزين مختلف عن غيرهما من كائنات الصنف. انوسع على سبيل المثال البرنامج السابق ونعرف كائنا آخرا rectb من الصنف CRectangle بالإضافة إلى الكائن السابق rect:
كود:
//class example
#include <iostream.h>
class CRectangle{
int x,y;
public:
void set_values(int,int);
int area (void) {return(x*y);}
};
void CRectangle::set_values(int a, int b) {
x=a;
y=b;
}
int main() {
CRectangle rect, rectb;
rect.set_values (3,4);
rectb.set_values (5,6);
cout<<"rect area: "<<rectb.area()<<endl;
}

Output:
rect area:12
rectb area:30

يولد استدعاؤنا للمنهج ()rect.area قيمة مختلفة عن استدعاء المنهج ()rectb.area.
إذ يمتلك كل كائن متحولين xوy مختلفين عن متحولي الكائن الآخر، بالتالي سيعطي المنهج ()area المطبق على الكائن قيمة تعتمد على قيم حقلي هذا الكائن.
ونصل بذلك إلى أول اساسيات البرمجة كائنية التوجهOOP، وهي امتلاك كل كائن لمجموعة حقول ومناهج خاصة به، بدلا من الطريقة القديمة التي نمرر فيها الكائن كوسيط إلى التوابع المطبقة عليه. وتسمى هذه الخاصية التغليف encapsulation حيث يتم تغليف المعطيات مع التوابع العاملة عليها ضمن بنية واحدة نسميها الصنف Class، وسنتحدث خلال هذا الفصل عن فوائد هذه الخاصية.



1 - classes hgHwkht

   

رد مع اقتباس
قديم 03-05-2009, 11:42 PM   رقم المشاركة : 2 (permalink)
معلومات العضو
MrXRoMaNcE1
VBSPIDERS TEAM
 
الصورة الرمزية MrXRoMaNcE1
 

 

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






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

 

 

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

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

افتراضي


يعطيك العافية يالغالي في انتظار جديدك

التوقيع

 

   

رد مع اقتباس
قديم 03-05-2009, 11:48 PM   رقم المشاركة : 3 (permalink)
معلومات العضو
 
الصورة الرمزية GoLdeN-z3r0
 

 

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






GoLdeN-z3r0 غير متواجد حالياً

 

 

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

عدد النقاط : 10
GoLdeN-z3r0 is on a distinguished road

افتراضي


شكراً على المرور .. \\

   

رد مع اقتباس
قديم 03-05-2009, 11:59 PM   رقم المشاركة : 4 (permalink)
معلومات العضو
El3ctr0-Dz
.:IronMind:.
 
الصورة الرمزية El3ctr0-Dz
 

 

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








El3ctr0-Dz غير متواجد حالياً

إرسال رسالة عبر MSN إلى El3ctr0-Dz إرسال رسالة عبر Skype إلى El3ctr0-Dz

 

 

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

عدد النقاط : 10
El3ctr0-Dz is on a distinguished road

افتراضي


شكرا
ليك على الموضوع القوي بارك الله فيك يا الغالي

التوقيع

======================================
[+] Human Error Detected : Auto payload in progress
[+] Generating payload
[+] Sending evil packet
[+] Reverse shell initiated from 68.82.4.9
[+] id=0(root) gid=0(root) groups=0(root)
======================================
P4L 4 Ev3r

qib@hotmail.com

 

   

رد مع اقتباس
قديم 03-06-2009, 12:54 AM   رقم المشاركة : 5 (permalink)
معلومات العضو
 
الصورة الرمزية BoM AtTaCk
 

 

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






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

 

 

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

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

افتراضي


مـوضـوع رآئــع بـآركـ الله فـيكـ ...

شكرا شكرا شكرا

التوقيع

BoM AtTaCk

o_l8@hot
mail.com

respect me so i can respect you

:666:

 

   

رد مع اقتباس
قديم 03-06-2009, 03:33 AM   رقم المشاركة : 6 (permalink)
معلومات العضو
 
الصورة الرمزية Sniper_Mo
 

 

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







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

 

 

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

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

افتراضي


درس جميل ورائع شكرا لك اخي الغالي

انتظر الجديد...والمزيد

التوقيع

سيستمر غيابي عن الشبكة والانترنت لعدة اسابيع اخرى. ارجو ان تدعولي لانني امر بازمات :088: عدة. وشكرا لكم

 

   

رد مع اقتباس
قديم 03-06-2009, 08:07 AM   رقم المشاركة : 7 (permalink)
معلومات العضو
 
إحصائية العضو







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

 

 

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

عدد النقاط : 11
ابو بدر is on a distinguished road

افتراضي


الله يعطيك العافيه
اخوي وشكرااا

   

رد مع اقتباس
قديم 06-14-2009, 05:42 AM   رقم المشاركة : 8 (permalink)
معلومات العضو
 
إحصائية العضو







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

 

 

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

عدد النقاط : 11
ابو بدر is on a distinguished road

افتراضي


مشكوووووووووور اخوي والله يعطيك العافية

التوقيع

تم إعتزال الهكر نهائي
Skype:omar_28

 

   

رد مع اقتباس
قديم 06-27-2009, 12:48 PM   رقم المشاركة : 9 (permalink)
معلومات العضو
 
الصورة الرمزية data$hack
 

 

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







data$hack غير متواجد حالياً

 

 

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

عدد النقاط : 10
data$hack is on a distinguished road

افتراضي


شكري لك يالغالي وواصل ابداعك

التوقيع


data$hack : EIP HUNTER


Ninja-security team
http://Pentest101.blogspot.com

 

   

رد مع اقتباس
قديم 07-20-2011, 08:53 PM   رقم المشاركة : 10 (permalink)
معلومات العضو
المفترس
:: مهووس الكمبيوتر ::
 
الصورة الرمزية المفترس
 

 

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





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

 

 

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

عدد النقاط : 10
المفترس is on a distinguished road

افتراضي


thanksssssssssssssss

التوقيع

Almoftarse over from here

تم ترك الهاكر والبرمجة وكل ما يخص الكمبيوتر لمدة عام

لا يوجد في هدا العالم صداقة الا صداقة الوالدين وبعدين صداقة العقل وبعدهما صداقة المال والنفود

 

   

رد مع اقتباس
إضافة رد

مواقع النشر (المفضلة)


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

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

الانتقال السريع


الساعة الآن 10:18 AM


[ vBspiders.Com Network ]

SEO by vBSEO 3.6.0