Latest web development tutorials

C ++ تغليف البيانات

جميع برامج C ++ واثنين من عناصر أساسية هي:

  • بيانات برنامج (كود): هذا هو جزء من برنامج لتنفيذ إجراء، ما يطلق عليه ظائف.
  • هو برنامج المعلومات، وسوف تتأثر وظائف البرنامجالبيانات: برنامج البيانات.

التغليف هو مفهوم البرمجة الشيئية في البيانات وظيفة والتلاعب ربط البيانات معا، وذلك لتجنب التدخل الخارجي، وسوء الاستخدام، وبالتالي ضمان السلامة. تغليف البيانات يخرج من المفاهيم آخر OOP مهمة، وهيإخفاء البيانات.

تغليف البيانات هو آلية للعمل البيانات ومعالجة البيانات المجمعة التجريد البياناتيتعرض واحد فقط إلى واجهات المستخدم وتفاصيل تنفيذ آلية مخبأة.

عن طريق إنشاء C ++ دعمفئة التغليف والبيانات يختبئ (الجمهور، وحمايتها، والقطاع الخاص).ونحن نعلم بالفعل أن الطبقة تحتوي على أعضاء من القطاع الخاص (الخاصة)، لحماية أعضاء (المحمية) وأعضاء من أعضاء الجمهور (الجمهور). افتراضيا، وجميع البنود المحددة في الطبقة هي خاصة. على سبيل المثال:

class Box
{
   public:
      double getVolume(void)
      {
         return length * breadth * height;
      }
   private:
      double length;      // 长度
      double breadth;     // 宽度
      double height;      // 高度
};

متغير الطول، العرض والارتفاع والخاص (القطاع الخاص). وهذا يعني أنه يمكن الوصول إليها إلا من قبل أعضاء آخرين من الطبقة بالغرف، لا يمكنك الوصول إلى أجزاء أخرى من البرنامج. هذا هو وسيلة لتحقيق حزمة.

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

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

ومن الأمثلة على حزم البيانات

C ++ البرنامج، أي فئة مع أعضاء البيانات العامة والخاصة ويمكن استخدام أمثلة من التغليف والتجريد البيانات. النظر في الأمثلة التالية:

#include <iostream>
using namespace std;

class Adder{
   public:
      // 构造函数
      Adder(int i = 0)
      {
        total = i;
      }
      // 对外的接口
      void addNum(int number)
      {
          total += number;
      }
      // 对外的接口
      int getTotal()
      {
          return total;
      };
   private:
      // 对外隐藏的数据
      int total;
};
int main( )
{
   Adder a;
   
   a.addNum(10);
   a.addNum(20);
   a.addNum(30);

   cout << "Total " << a.getTotal() <<endl;
   return 0;
}

عندما يتم ترجمة التعليمات البرمجية أعلاه وتنفيذها، وتنتج النتائج التالية:

Total 60

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

استراتيجية التصميم

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

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