خطا در مقدار دادن به عضو کلاس در تابع const - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

خطا در مقدار دادن به عضو کلاس در تابع const

+2 امتیاز

من یک کلاس دارم که یکی از member function هاش بصورت const تعریف شده حالا می خوام بتونم یکی از عضو های const کلاس رو داخل این تابع مقدار بدم آیا این کار شدنیه ؟

class A
{
public:
    void func() const
    {
        a=6;//?
        //...
    }

private:
     int a ;
};

 

سوال شده اسفند 28, 1392  بوسیله ی رامین قربانی (امتیاز 75)   5 11 15
دوباره تگ گذاری شد مهر 9, 1393 بوسیله ی BlueBlade

1 پاسخ

+5 امتیاز
 
بهترین پاسخ

اگه منظورتون اینه که آیا میتونید داخل یک متد const متغییرهای عضو کلاس رو تغییر بدید ؟ بله میشه .

باید اون متغییر رو با کلمه mutable تعریف کنیدش .

اینطوری :

class A
{
public:
    void func() const
    {
        a=6;//?
        //...
    }
 
private:
     mutable int a ;
};

ولی متغییرهای const عضو کلاس رو باید در سازنده ها بصورت جدا مقدار دهی اولیه کنید .

اینطوری :

class A
{
public:
	A() : a(5)
	{
	}
 
private:
     const int a ;
};

 

پاسخ داده شده اسفند 29, 1392 بوسیله ی Ali Rahbar (امتیاز 4,240)   6 16 46
انتخاب شد اسفند 29, 1392 بوسیله ی رامین قربانی
...