ثابت ها بخشی از حافظه اند که فقط یک بار می توان آن ها را مقدار دهی کرد.
متغییر ثابت: آدرسی از حافظه است که در هنگام تعریف آن مقدار دهی می شود و اگر در غیر از آن جا مقداری به آن انتصاب شود کامپایلر خطای دستوری می گیرد.
دو گونه تعریف امکان دارد:
a: #define :a
b: const = :b
اشیا ثابت:
در این حالت داده های اختصاصی ثابت می شوند و فقط هنگام ایجاد توسط سازنده برای یک بار امکان مقدار دهی وجود دارد.
class mohreclass { public: mohreclass(int,int,int); private: int x,y,z; }; ///////// mohreclass::mohreclass(int a, int b, int c) { x=a; y=b; z=c; };
/////////////////////
void main(void) { const mohreclass x(1,2,3); }
کامپایلر فراخوانی توابع عضو برای اشیا ثابت نمی پذیرند مگر آن که خود تابع عضو هم ثابت اعلان شده باشد. این موضوع حتی برای توابع عضوی که هیچ تغییری ایجاد نمی کنند صادق است. کامپایلر به توابع عضوی که به صورت ثابت اعلان شده اند امکان ایجاد تغییر در شی را نمی دهد. |