mutable
শব্দ বিঁধান একটি উপায় const
ঘোমটা আপনি আপনার বস্তু উপর সাজান। আপনার যদি কোনও অবজেক্টের কাছে স্থির রেফারেন্স বা পয়েন্টার থাকে তবে কখন এবং কীভাবে চিহ্নিত রয়েছে তা বাদ দিয়ে আপনি কোনওভাবেই সেই অবজেক্টটি সংশোধন করতে পারবেন না mutable
।
আপনার const
রেফারেন্স বা পয়েন্টার দিয়ে আপনি সীমাবদ্ধ:
- যে কোনও দৃশ্যমান ডেটা সদস্যের জন্য কেবল অ্যাক্সেস পড়ুন
- চিহ্নিত পদ্ধতিগুলিতে কেবল কল করার অনুমতি
const
।
mutable
ব্যতিক্রম এটা তোলে যাতে আপনি এখন লিখতে বা সেট ডেটার সদস্যরা চিহ্নিত করা হয়েছে পারবেন mutable
। এটিই কেবল বাহ্যিকভাবে দৃশ্যমান পার্থক্য।
অভ্যন্তরীণভাবে আপনার const
কাছে দৃশ্যমান যে পদ্ধতিগুলি চিহ্নিত হয়েছে এমন ডেটা সদস্যদেরও লিখতে পারে mutable
। মূলত কনস্টের ওড়নাটি বিস্তৃতভাবে বিদ্ধ করা হয়। ধারণাটি mutable
ধ্বংস হয় না const
এবং এটি কেবল কার্যকর বিশেষ ক্ষেত্রে ব্যবহৃত হয় তা নিশ্চিত করার জন্য এটি সম্পূর্ণ এপিআই ডিজাইনার up mutable
শব্দ কারণ এটি পরিষ্কারভাবে চিহ্ন ডেটা সদস্যদের যে এই বিশেষ ক্ষেত্রে সাপেক্ষে সাহায্য করে।
অনুশীলনে আপনি const
আপনার কোডবেস জুড়ে অবস্হায়ভাবে ব্যবহার করতে পারেন (আপনি মূলত const
"রোগ" দিয়ে আপনার কোডবেসকে "সংক্রামিত" করতে চান )। এই পৃথিবীতে পয়েন্টার এবং রেফারেন্সগুলি const
খুব অল্প ব্যতিক্রম সহ, উত্পাদনশীল কোড যা তর্ক করা এবং বোঝা সহজ। একটি আকর্ষণীয় ডিগ্রেশন জন্য "রেফারেন্সিয়াল স্বচ্ছতা" সন্ধান করুন।
mutable
কীওয়ার্ড ব্যতীত আপনি অবশেষে const_cast
এটির বিভিন্ন কার্যকর বিশেষ কেসগুলি (কেচিং, রেফ গণনা, ডিবাগ ডেটা ইত্যাদি) পরিচালনা করতে বাধ্য হবেন । দুর্ভাগ্যক্রমে const_cast
উল্লেখযোগ্যভাবে বেশি ধ্বংসাত্মক mutable
কারণ এটি API ক্লায়েন্টকেconst
তিনি যে জিনিসগুলি ব্যবহার করছেন সেগুলির সুরক্ষা নষ্ট করতে বাধ্য করে। অতিরিক্তভাবে এটি ব্যাপক const
ধ্বংস ঘটায় : const_cast
একটি কনস্ট পয়েন্টার বা রেফারেন্সটি নিরক্ষর লিখন এবং পদ্ধতিতে দৃশ্যমান সদস্যদের কলিং অ্যাক্সেসের অনুমতি দেয়। বিপরীতে mutable
এপিআই ডিজাইনারের const
ব্যতিক্রমগুলির উপর সূক্ষ্ম দানাদার নিয়ন্ত্রণ প্রয়োগ করা প্রয়োজন এবং সাধারণত এই ব্যতিক্রমগুলি const
ব্যক্তিগত ডেটাতে পরিচালিত পদ্ধতিগুলিতে লুকানো থাকে ।
(এনবি আমি কয়েকবার ডেটা এবং পদ্ধতির দৃশ্যমানতার কথা উল্লেখ করি public আমি পাবলিক বনাম প্রাইভেট বা সুরক্ষিত হিসাবে চিহ্নিত সদস্যদের সম্পর্কে কথা বলছি যা এখানে আলোচনা করা সম্পূর্ণ ভিন্ন ধরণের অবজেক্ট সুরক্ষা ।)