کد زیر رو ببینید :
class A { public: void func() {} }; int main() { const A a; a.func(); }
من با این که داخل func هیچ عضوی از کلاس رو تغیر ندادم ولی باز هم کد بالا error میده ؟ چرا ؟؟
تابع عضو کلاس باید تکلیف خودشو مشخص کنید یا this را دستکاری نمی کنه که باید تابع به صورت زیر تعریف شه :
class A { public: void func() const {} };
و یا this را دستکاری می کنه که در این صورت نمی تونید کلاس را به صورت ثابت تعریف کنید.