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 আমি পাবলিক বনাম প্রাইভেট বা সুরক্ষিত হিসাবে চিহ্নিত সদস্যদের সম্পর্কে কথা বলছি যা এখানে আলোচনা করা সম্পূর্ণ ভিন্ন ধরণের অবজেক্ট সুরক্ষা ।)