Avatar ·

ماذا يعني const في نهاية إعلان دالة عضو في كلاس في C++؟

مرحبًا أيها الزملاء! لقد بدأت تعلم C++ منذ وقت ليس ببعيد وواجهت بناء جملة غير مفهوم تمامًا بالنسبة لي. أرى في الكود إعلانات دوال كلاس حيث تأتي الكلمة المفتاحية `const` بعد قائمة المعاملات. على سبيل المثال: ```cpp class MyClass { public: int getValue() const; // ماذا يعني const هذا؟ void setValue(int v); }; ``` أفهم أن `const` قبل نوع المتغير يجعله غير قابل للتغيير (مثل `const int x = 5;`). لكن ماذا تفعل `const` في نهاية إعلان الدالة؟ حاولت كتابة مثل هذه الدالة، ولكن عندما حاولت تغيير حقل الكلاس داخلها، أصدر المترجم خطأ. لماذا؟ إليك الكود الخاص بي الذي لا يتم ترجمته: ```cpp class Counter { private: int count = 0; public: int getCount() const { count = 10; // خطأ: لا يمكن تغيير عضو الكلاس في دالة const return count; } }; ``` يرجى التوضيح، ما الغرض من `const` هذا؟ متى يجب استخدامه، ومتى لا؟ وكيف يرتبط ذلك بالعمل؟