أمثلة على وظائف C++ Const

Amthlt Ly Wzayf C Const



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

مثال 1: برنامج وظيفة عضو Const في لغة C++

هنا، لدينا برنامج بسيط لوظيفة العضو const:

#تشمل
استخدام مساحة الاسم الأمراض المنقولة جنسيا ;
فصل صفي {
كثافة العمليات على واحد ;
عام :
صفي ( كثافة العمليات ن = 0 ) {
على واحد = ن ;
}
كثافة العمليات الحصول على قيمة ( ) مقدار ثابت {
يعود على واحد ;
}
} ;
كثافة العمليات رئيسي ( ) {
مقدار ثابت ماي كلاس ج ( 30 ) ;
ماي كلاس ج1 ( 5 ) ;
cout << 'الرقم الذي يستخدم الكائن c :' << ج. الحصول على قيمة ( ) ;
cout << ' الرقم باستخدام الكائن c1 : ' << ج1. الحصول على قيمة ( ) ;
يعود 0 ;
}

في البداية، نحدد ملف الرأس الذي يمكّن تدفقات الإدخال/الإخراج للبرنامج. بعد ذلك، قمنا بتعيين فئة 'MyClass' حيث نعلن عن متغير 'num' ووظائف الأعضاء في وظيفة MyClass() ووظيفة getVal(). داخل الدالة MyClass()، قمنا بتعيين المعلمة 'n' بقيمة '0'. ثم يتم تعيين الوسيطة 'n' للمتغير 'num'. بعد ذلك، نستدعي الدالة getVal()‎ بالكلمة الأساسية 'const'، للإشارة إلى أنه لا يمكن تعديل الحالة الحالية للكائن عند استدعاء دالة. تقوم الدالة getVal() بإرجاع متغير العضو 'num'.







وأخيرا، نصل إلى الوظيفة الرئيسية (). هنا، نقوم بتعريف الكائنات 'c' و'c1' للدالة MyClass() وكذلك تمرير القيم إلى هذه الكائنات. يتم تعيين الكائن 'c' باستخدام الكلمة الأساسية 'const'، مما يشير إلى أنه لا يمكن تعديل القيمة المخصصة لهذا الكائن.



يتم عرض إخراج وظيفة العضو const التي يستدعيها الكائن في ما يلي. بهذه الطريقة، يمكننا استخدام الكلمة الأساسية 'const' مع دالة العضو والكائن:







مثال 2: برنامج وظيفة عضو Const خارج الفصل الدراسي في لغة C++

الآن، لدينا تطبيق آخر حيث يتم تعريف وظيفة العضو const خارج تعريف الفئة وتعيين واسترداد قيمة متغير العضو الخاص باستخدام وظيفة العضو const.

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

فصل صف جديد {
كثافة العمليات أنا ;

عام :
فارغ set_record ( كثافة العمليات ) ;

كثافة العمليات get_record ( ) مقدار ثابت ;
} ;

فارغ صف جديد :: set_record ( كثافة العمليات س ) { أنا = س ; }
كثافة العمليات صف جديد :: get_record ( ) مقدار ثابت { يعود أنا ; }

كثافة العمليات رئيسي ( )
{
فئة جديدة ج ;
ج. set_record ( 10 ) ;
cout << ج. get_record ( ) ;

يعود 0 ;
}

هنا، نقوم أولاً بإنشاء فئة، 'NewClass'، حيث نقوم بتهيئة المتغير 'i' الذي يظل خاصًا. بعد ذلك، لدينا كلمة رئيسية عامة حيث يتم تعريف وظائف الأعضاء set_record() و get_record(). يتم استخدام وظيفة العضو set_record() لتعيين قيمة المتغير 'i' ويتم استخدام وظيفة get_record() هنا لإرجاع قيمة المتغير 'i'. لاحظ أننا نستخدم الكلمة الأساسية 'const' مع وظيفة العضو get_record() التي تمثلها كوظيفة عضو const، ولا يمكن تعديل حالة الكائن. بعد ذلك، لدينا تعريف دالة set_record() لتعيين قيمة المتغير 'i'.



وبالمثل، لدينا تعريف الدالة get_record() لاسترداد قيمة المتغير 'i'. بعد ذلك، قمنا بتعيين الدالة main() حيث لدينا إعلان للكائن 'c' من فئة 'NewClass'. بعد ذلك، يتم استدعاء الدالة 'set_record'، وهي دالة عضو غير ثابتة، لتعيين قيمة للمتغير 'z'. للمضي قدمًا، نستدعي دالة العضو const get_record() لطباعة قيمة 'i'.

يتم استدعاء قيمة متغير العضو الخاص بواسطة دالة العضو const وتظهر في الموجه التالي:

مثال 3: برنامج لوظيفة عضو Const محددة خارج الفئة كوظيفة مستقلة

ومع ذلك، فإننا ننفذ حالة أخرى لوظيفة العضو const حيث يتم استدعاء وظيفة العضو التي تحتوي على الكلمة الأساسية 'const' خارج الفئة كوظيفة مستقلة.

#تتضمن
استخدام مساحة الاسم الأمراض المنقولة جنسيا ;
فصل معادلة {
كثافة العمليات n1,n2 ;
عام :
فارغ set_equation ( كثافة العمليات س, كثافة العمليات و )
{
ن1 = س ;
        n2 = و ;
}
فارغ show_equation ( )
{
cout << 'المعادلة هي:' << ن1 << '+' << n2 << 'ب' << endl ;
}
صديق فارغ انه ممتع ( مقدار ثابت معادلة ) ;
} ;
فارغ انه ممتع ( مقدار ثابت كائن المعادلة )
{
cout << 'المعادلة التي تستخدم الدالة هي:' << obj. ن1 << '+' << obj. n2 << 'ب' << endl ;
}
كثافة العمليات رئيسي ( )
{
كائن المعادلة ;
obj. set_equation ( 5 , 8 ) ;
obj. show_equation ( ) ;
انه ممتع ( obj ) ;
}

هنا، نقوم بإنشاء فئة 'Equation()' ثم نعلن عن المتغيرين 'n1' و'n2'. هنا، نقوم أيضًا بإضافة دالة العضو set_Equation() لتعيين قيم المتغيرات 'n1' و'n2'. تعرض الدالة show_Equation() المعادلة التي تم إنشاؤها باستخدام هذه المتغيرات.

بعد ذلك، لدينا إعلان وظيفة funIs() والذي تم تعريفه باستخدام الكلمة الأساسية 'friend'. تتيح لنا هذه الكلمة الأساسية 'صديق' الوصول إلى العضو الخاص في فئة 'المعادلة'. بعد ذلك، نستدعي وظيفة الصديق 'funIs()' خارج الفئة وندخل المعلمة 'obj' لفئة 'المعادلة' كـ const. في النهاية، لدينا دالة main() حيث نعلن عن كائن فئة 'المعادلة'. بعد ذلك، قمنا بتعيين قيم المتغيرين 'n1' و'n2' باستخدام الدالة set_Equation(). يتم استخدام المتغيرين 'n1' و'n2' لعرض قيمهما باستخدام الدالة show_Equation(). وأخيرًا، نطلق على دالة الصديق 'funIs' لفئة 'المعادلة' لعرض المعادلة.

يتم عرض المعادلة والمعادلة التي تستخدم دالة const friends في الموجه:

المثال 4: برنامج دالة عضو Const لتحديث القيمة في لغة C++ (الحالة الأسوأ)

يعرض البرنامج أسوأ سيناريو لدالة العضو const حيث نحاول تعديل قيمة المتغير المسمى “داخل دالة العضو const”.

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

فصل بيانات {
كثافة العمليات في ;

عام :
فارغ setValue ( كثافة العمليات أنا ) { في = أنا ; }
كثافة العمليات الحصول على قيمة ( ) مقدار ثابت
{

++ في ;
يعود في ;
}

} ;

كثافة العمليات رئيسي ( )
{
البيانات د ;
د. setValue ( عشرين ) ;
cout << endl << د. الحصول على قيمة ( ) ;

يعود 0 ;
}

هنا، نقوم أولاً بإنشاء فئة 'Data' وإعلان المتغير 'v' داخل الفئة. بعد ذلك، قمنا بتعيين الكلمة الأساسية 'العامة' ثم نعلن عن وظائف عضو الفئة 'setValue()' التي تمثل مُنشئ الفئة وgetValue() التي تشير إلى وظيفة عضو getter للفئة. تأخذ الدالة setValue() المتغير 'i' كمعلمة. يتم تعيين هذا المتغير 'i' لمتغير العضو 'v'.

بعد ذلك، لدينا تعريف الدالة getValue() حيث نقوم باسترجاع قيمة المتغير 'v'. نظرًا لأنه تم الإعلان عن الدالة getValue() باستخدام الكلمة الأساسية 'const'، فهذا يعني أنه لا يمكن تحديث قيمة المتغير 'v' بأي حال من الأحوال. ومع ذلك، فإننا نحاول عمدًا زيادة المتغير 'v' لتغيير قيمته. عندما يصل البرنامج إلى هذه المرحلة، يظهر خطأ. أخيرًا، لدينا استدعاء الدالة main() حيث نقوم بتعريف الكائن 'd' من فئة 'Data' وتعيين قيمة '20' لهذا الكائن 'd'. بعد ذلك، نستدعي الدالة getValue()‎ للحصول على القيمة 'd' للكائن.

ينشئ الموجه نتائج التنفيذ السابق حيث يعطي خطأ في '++v' لأنه غير مسموح لنا بتعديل قيمة كائنات دالة العضو const:

خاتمة

في الختام، سنتعمق في الدالة const في لغة C++ والتي تُستخدم لتجنب التغييرات العرضية في قيمة البرنامج. وظائف العضو const في C++ هي وظائف للقراءة فقط ولا يُسمح بتعديل الكائنات التي يتم استدعاؤها عليها. قمنا أيضًا بتنفيذ سيناريوهات مختلفة للدالة const لتوضيح وظائفها في لغة C++.