كيفية سحب السمة

جدول المحتويات:

كيفية سحب السمة
كيفية سحب السمة

فيديو: كيفية سحب السمة

فيديو: كيفية سحب السمة
فيديو: طريقة سحب استدعائات السنة الخامسة ابتدائي لسنة 2019 2024, يمكن
Anonim

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

كيفية سحب السمة
كيفية سحب السمة

تعليمات

الخطوة 1

قم بإنشاء كائن أو مؤشر لمثيل من الفئة التي تحتاج إلى سماتها في برنامجك. البناء القياسي لمثل هذه العملية هو CMyClass myObj1. في بعض الأحيان ، لتهيئة كائن ، يجب عليك تمرير معلمات معينة إلى مُنشئ الفئة. في هذه الحالة ، قد يبدو سجل إنشاء الكائن كما يلي: CMyClass myObj1 (param1، param2، param3) ، حيث يكون CMyClass هو اسم الفئة ، و myObj1 هو اسم الكائن الذي يتم إنشاؤه ، ويتم سرد كافة المعلمات التي طلبها المُنشئ بين قوسين. يتم إنشاء مؤشر لمثيل فئة على النحو التالي: CMyClass * pObj1 = new CMyClass (param1، param2، param3).

الخطوة 2

إن أبسط طريقة لاستدعاء سمة هي الرجوع إليها مباشرة في أي مكان في البرنامج. ومع ذلك ، هذا ممكن فقط للبيانات المفتوحة الموصوفة في فئة مع المعدل العام. يبدو الوصول المباشر من خلال كائن كما يلي: myObj1.attr1 ، حيث attr1 هي سمة من سمات هذه الفئة. بالنسبة لمؤشر ، ستكون المكالمة: pObj1–> attr1.

الخطوه 3

إذا كانت السمة التي تحتاج إلى الإشارة إليها لها الحالة المخفية وتم وصفها في فئة مع المُعدِّل الخاص ، فإن الوصول إليها ممكن فقط من خلال طريقة تنتمي إلى نفس الفئة. يجب أن تكون طريقة أو وظيفة الفصل ذات الحالة العامة. إضافة طريقة جديدة للفئة ، حيث تكتب معالجة السمة المطلوبة. في هذه الحالة ، يمكن تمرير المعلمات إلى الوظيفة ، اعتمادًا على القيمة التي يتم تنفيذ إجراءات معينة منها. يمكن أن تقوم الوظيفة نفسها أيضًا بإرجاع البيانات ، مثل محتوى السمة. كود برنامج C ++ الذي ينفذ كلا الوظيفتين للعمل مع سمة خاصة: class CMyClass {protected: int attr1؛ // السمة العامة: void funcA1 (int param) {attr1 = param؛ } int funcA2 () {return attr1؛ }}؛

الخطوة 4

وبالتالي ، لضبط السمة الخاصة attr1 على القيمة التي تحتاجها ، قم باستدعاء طريقة من نفس الفئة باستخدام الكائن الذي تم إنشاؤه مسبقًا: myObj1.funcA1 (10) - من خلال عملية ضمنية مماثلة ، يتم وضع القيمة 10 في سمة attr1. عند العمل بمؤشر إلى مثيل لفئة ، ستبدو عملية مماثلة على النحو التالي: рObj1–> funcA (10). لاسترداد السمة الخاصة attr1 ومعرفة القيمة المخزنة فيها ، قم باستدعاء طريقة أخرى للفئة: int Res = myObj1.funcA2 (). في هذه الحالة ، سيتم تخصيص قيمة متغير الفئة المخفية لمتغير العدد الصحيح Res.

الخطوة الخامسة

إذا كنت بحاجة إلى استدعاء سمة ذات حالة محمية في جميع كائنات الفئات الفرعية ، فارجع إلى متغيرها مباشرةً. ومع ذلك ، عند العمل في وظائف الطبقات الأجنبية ، يجب الحصول على الوصول إلى البيانات المحمية بالطريقة الموضحة أعلاه.

الخطوة 6

لاستدعاء سمة بدون إنشاء كائن ، قم بتعريف متغيرها في الفئة على أنه ثابت باستخدام البنية التالية: static int attr1. في هذه الحالة ، يمكنك سحب السمة في أي مكان في رمز البرنامج عن طريق تحديد الإدخال: CMyClass:: attr1.

موصى به: