طرق Getters وSetters في C++

Trq Getters Wsetters Fy C



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

مثال 1:

نستخدم ملفات الرأس هنا لبدء التعليمات البرمجية الخاصة بنا نظرًا لأنها متاحة لتطوير C++. نقوم بتحميل ملفات الرأس اللازمة لتشغيل هذا الكود للبدء. يتم تضمين ملفات الرأس 'string' و'iostream' في هذا الكود. نقوم بعد ذلك بتضمين 'مساحة الاسم القياسية' بعد ذلك.







بعد ذلك، نقوم بإنشاء فئة 'Table' هنا وتهيئة متغير خاص يسمى 'count' بنوع البيانات 'int' وتخزين '15' فيه كقيمة له. بعد ذلك، نقوم بإدراج الكلمة الأساسية 'العامة'. ثم نقوم بإنشاء دالة تسمى 'getCount()'. نوع البيانات الخاص به هو 'int'. هذه هي وظيفة getter هنا. نقوم بإرجاع هذا 'العدد' في هذه الوظيفة باستخدام الكلمة الأساسية 'return'. بعد ذلك، نقوم باستدعاء الدالة 'main()' التالية حيث نقوم بإنشاء كائن من الفئة السابقة باسم 'T_obj'. بعد ذلك، نقوم باستدعاء الدالة 'getCount()' مع كائن الفئة هذا في عبارة 'cout' للحصول على قيمة العد وطباعة النتيجة هنا.



الكود 1:

#تشمل <سلسلة>

#تشمل

استخدام مساحة الاسم الأمراض المنقولة جنسيا ;

فصل طاولة

{

خاص :
كثافة العمليات عدد = خمسة عشر ;
عام :
كثافة العمليات getCount ( )
{
يعود عدد ;
}
} ;
كثافة العمليات رئيسي ( )
{
الجدول T_obj ;


cout << 'لقد حصلنا على أرقام الجدول هنا وهي:' << T_obj. getCount ( ) ;

}

انتاج:

بعد التجميع الكامل والناجح لهذا الكود، نحصل على هذا الناتج المطلوب حيث يمكننا أن نرى أنه حصل على قيمة العد وعرضها هنا وهي '15'. تتم تهيئته داخل الفئة 'الخاصة'.







مثال 2:

تم تضمين ملفات الرأس 'string' و'iostream' المطلوبة لهذا الرمز هنا. يتم بعد ذلك تضمين 'مساحة الاسم القياسية' بعد ذلك. بعد ذلك، نقوم بإنشاء مثيل جديد لفئة 'MySquareClass'، وتهيئة متغير خاص يسمى 'squareSide' بنوع البيانات 'int'، وتعيين قيمته على '5'. تتم بعد ذلك إضافة الكلمة الأساسية 'العامة'، ويتم تطوير وظيفة تسمى 'getSquareSide()' بنوع البيانات 'int'.

ويُشار إليها هنا بوظيفة 'getter'. داخل هذا، نقوم 'بإرجاع' 'الجانب المربع'. لذلك، عندما نسمي هذه الدالة، فإنها تعطي قيمة 'squareSide'. بعد ذلك، نقوم بوضع دالة أخرى تسمى 'getSquarePerimeter()'. هنا، نضع صيغة إيجاد المحيط بحيث تُرجع محيط المربع بعد الحصول على قيمة ضلع المربع وضربها في '4'. وعلينا أيضًا إيجاد مساحة المربع. لهذا الغرض، قمنا بتطوير دالة أخرى تسمى 'getSquareArea()' وحساب مساحة المربع بمساعدة صيغة ضرب جوانب المربع. تقوم بإرجاع مساحة المربع عندما نسميها وتحصل على قيمة الجانب المربع من المتغير 'squareSide' السابق.



الآن نحن بحاجة إلى استدعاء هذه الوظائف. نقوم باستدعاء 'main()' ثم نقوم بإنشاء كائن من 'MySquareClass' بالاسم 'sq_obj1'. بعد ذلك، نقوم باستدعاء وطباعة جميع الوظائف الثلاث باستخدام كائن الفئة هذا بشكل منفصل.

الكود 2:

#تشمل <سلسلة>

#تشمل

استخدام مساحة الاسم الأمراض المنقولة جنسيا ;

فصل ماي سكوير كلاس

{

خاص :

كثافة العمليات squareSide = 5 ;
عام :
كثافة العمليات getSquareSide ( )
{
يعود squareSide ;
}
كثافة العمليات getSquarePerimeter ( )
{
يعود squareSide * 4 ;
}
كثافة العمليات getSquareArea ( )
{
يعود squareSide * squareSide ;
}
} ;
كثافة العمليات رئيسي ( )
{
ماي سكوير كلاس sq_obj1 ;

cout << 'جانب المربع =' <<

sq_obj1. getSquareSide ( ) << endl ;

cout << 'محيط المربع =' <<

sq_obj1. getSquarePerimeter ( ) << endl ;

cout << 'مساحة المربع =' <<

sq_obj1. getSquareArea ( ) << endl ;

}

انتاج:

أولاً، يتم عرض جانب المربع وهو '5'، بمساعدة وظيفة 'getSquareSide()'. ثم يقوم بطباعة محيط المربع باستخدام وظيفة 'getSquarePerimeter ()' ومساحة المربع باستخدام وظيفة 'getSquareArea ()'.

مثال 3:

هنا، لدينا فئة 'Driver' التي نضع فيها الكلمة الأساسية 'private' ونعلن عن 'driverSalary' باعتباره العضو الخاص بنوع البيانات 'int'. بعد ذلك، لدينا 'عام' حيث نقوم بإنشاء وظيفة 'setDriverSalary' وتمرير 'int d_s' كمعلمة لهذه الوظيفة. هذه هي وظيفة الضبط هنا في هذا الكود. الآن، نقوم بتعيين 'd_s' للمتغير 'driverSalary' داخل هذه الوظيفة.

بعد ذلك، نقوم بإنشاء وظيفة getter تسمى 'getDriverSalary' ونعيد راتب السائق. الآن، بعد استدعاء 'main()'، نقوم بإنشاء كائن من الفئة وهو 'driverObj_1' وتعيين قيمة راتب السائق عن طريق استدعاء وظيفة 'setDriverSalary()' وتمرير '30000' كمعلمة لها وهي راتب السائق. ثم نقوم بطباعة هذا الراتب عن طريق استدعاء الدالة “getDriverSalary()”.

الكود 3:

#تشمل

استخدام مساحة الاسم الأمراض المنقولة جنسيا ;

فصل سائق {

خاص :
كثافة العمليات راتب السائق ;
عام :
فارغ setDriverSalary ( كثافة العمليات d_s ) {
راتب السائق = d_s ;
}
كثافة العمليات getDriverSalary ( ) {
يعود راتب السائق ;
}
} ;
كثافة العمليات رئيسي ( ) {
سائق سائقObj_1 ;
driverObj_1. setDriverSalary ( 30000 ) ;


cout << 'راتب السائق هو:' << driverObj_1. getDriverSalary ( ) ;

يعود 0 ;

}

انتاج:

هنا نقوم بتحديد راتب السائق والحصول على راتبه بعد تحديده وعرضه على شاشة الإخراج.

مثال 4:

يتم إنشاء فئة 'Person' في هذا الكود حيث نعلن عن ثلاثة متغيرات 'خاصة' تسمى 'P_name' و'P_city' و'P_language' بنوع البيانات 'string'. بعد ذلك، نقوم بإنشاء منشئ 'عام'. هنا، نضع الدالة 'setPersonName()' ونضع 'string newName' كمعلمة للدالة. بعد ذلك، نقوم بتعيين هذا 'newName' للمتغير 'P_name'. بعد ذلك، نقوم بإنشاء الدالة 'getPersonCity()' وإرجاع 'P_city'. بنفس الطريقة، نقوم بإنشاء دالة أخرى باسم 'setPersonCity()'. ثم نقوم بتمرير 'مدينة السلسلة' كمعلمة.

تم الآن تعيين متغير 'المدينة' إلى المتغير 'P_city'. 'getPersonLanguage()' هي الوظيفة التالية هنا والتي تُرجع أيضًا 'P_language'. علاوة على ذلك، قمنا أيضًا بتعريف الدالة 'setPersonLanguage()' وتمرير سلسلة 'lang' إليها كمعلمة لها. يتم بعد ذلك تعيين 'lang' إلى المتغير 'P_language'. بعد ذلك، لدينا وظيفتان أخريان، 'lives()' و'speak()'، حيث نستخدم عبارة 'cout()'.

بعد تنفيذ الطريقة 'main()'، نقوم الآن بإنشاء كائن من الفئة يسمى 'p_obj1'. هنا، قمنا بتعيين اسم الشخص عن طريق تشغيل وظيفة 'setPersonName()' وتوفير اسم الشخص وهو 'Samuel' كمعلمة لها. بعد ذلك، قمنا بتعيين مدينة الشخص عن طريق استدعاء الدالة 'setPersonCity()' وتمرير 'London' كمعلمة. بعد ذلك، نقوم أيضًا بتعيين لغة الشخص باستخدام وظيفة 'setPersonLanguage()' وتمرير 'English' كمعلمة لها. الآن، نطلق على الدالتين 'lives()' و'speak()' بشكل منفصل مع كائن الفئة 'p_obj1'.

الكود 4:

#تشمل

استخدام مساحة الاسم الأمراض المنقولة جنسيا ;

فصل شخص

{

خاص :
سلسلة P_name ;
سلسلة P_city ;
سلسلة P_language ;

عام :
فارغ setPersonName ( سلسلة الاسم الجديد ) {
P_name = اسم جديد ;
}

سلسلة getPersonCity ( ) {
يعود P_city ;
}

فارغ setPersonCity ( مدينة السلسلة ) {
P_city = مدينة ;
}

سلسلة getPersonLanguage ( ) {
يعود لغة P ;
}

فارغ setPersonLanguage ( لغة السلسلة ) {
لغة P = فقط ;
}

فارغ الأرواح ( )
{


cout << P_name << ' يعيش في ' << P_city << endl ;

}

فارغ يتكلم ( )
{


cout << P_name << 'يتحدث' << لغة P << endl ;

}

} ;

كثافة العمليات رئيسي ( ) {

الشخص p_obj1 ;
p_obj1. setPersonName ( 'صموئيل' ) ;
p_obj1. setPersonCity ( 'لندن' ) ;
p_obj1. setPersonLanguage ( 'إنجليزي' ) ;

p_obj1. الأرواح ( ) ;
p_obj1. يتكلم ( ) ;

يعود 0 ;


}

انتاج:

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

خاتمة

لقد استكشفنا الحروف والمحددات في برمجة C++ في هذا الدليل. لقد أوضحنا أن طريقتي 'getter' و'setter' توفران تجريدًا وتغليفًا أفضل للعمليات الداخلية للفصل. بالإضافة إلى ذلك، اكتشفنا أنه يتم الاحتفاظ بوظيفة صلاحية البيانات لحماية عضو البيانات، مما يسمح للفئة بتغيير التعليمات البرمجية الخاصة بها دون التأثير على التعليمات البرمجية الخارجية. لقد فعلنا ذلك باستخدام رموز C++ من خلال استخدام الحروف والمحددات هذه.