ماذا يعني 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` هذا؟ متى يجب استخدامه، ومتى لا؟ وكيف يرتبط ذلك بالعمل؟