আপনি কী আমাকে friend
ক্লাসের ব্যক্তিগত ডেটাতে অ্যাক্সেসের অধিকার দেওয়ার জন্য কীওয়ার্ডটি পছন্দ করা যায় তা আমাকে ব্যাখ্যা করতে পারেন ?
আপনি কী আমাকে friend
ক্লাসের ব্যক্তিগত ডেটাতে অ্যাক্সেসের অধিকার দেওয়ার জন্য কীওয়ার্ডটি পছন্দ করা যায় তা আমাকে ব্যাখ্যা করতে পারেন ?
উত্তর:
ক্লাসের ইন্টারফেসটি প্রসারিত করার সর্বোত্তম উপায় হল বন্ধু।
তবে দুর্দান্ত বিষয়টি হ'ল বন্ধুটি ক্লাসে নির্দিষ্ট আইটেমগুলিকে দৃ .়ভাবে আবদ্ধ করার জন্য আপনার অভিপ্রায়টি স্পষ্টভাবে দলিল করে।
দ্রষ্টব্য: বন্ধুকে ব্যবহার করে আপনি ক্লাসে বন্ধুকে শক্তভাবে আবদ্ধ করছেন।
একটি নিখুঁত উদাহরণ সি ++ এর স্ট্রিম অপারেটর
class Plop
{
private:
int value;
friend std::ostream& operator<<(std::ostream& stream, Plop const& data);
friend std::istream& operator>>(std::istream& stream, Plop& data);
};
std::ostream& operator<<(std::ostream& stream, Plop const& data)
{
return stream << data.value << " ";
}
std::istream& operator>>(std::istream& stream, Plop& data)
{
return stream >> data.value;
}
এখানে আমরা প্লপ শ্রেণীর পাবলিক ইন্টারফেসটিকে এমনভাবে প্রসারিত করছি যা আমাদের কোনও স্ট্রিমের ভিতরে এবং বাইরে স্ট্রোক করতে সহায়তা করে তবে অভ্যন্তরীণ বাস্তবায়নকে উন্মুক্ত করা বা গেট / সেট পদ্ধতির ব্যবহারের প্রয়োজনে ভবিষ্যতের বাস্তবায়ন মাথাব্যথার কারণ না করে অবশ্যই প্রয়োজনীয় অভ্যন্তরীণ বাস্তবায়ন পরিবর্তন করা থাকলেও বজায় রাখা হবে (কারণ তারা পাবলিক ইন্টারফেসের অংশ হবে)।
দ্রষ্টব্য: এটি এনক্যাপসুলেশনটি ভাঙবে না তবে এটি প্লপ শ্রেণীর প্রয়োগের জন্য স্ট্রিম অপারেটরদেরকে দৃly়ভাবে আবদ্ধ করে তোলে (অর্থাত্ প্লপ শ্রেণীর প্রয়োগে যে কোনও পরিবর্তন আনতে স্ট্রিম অপারেটরগুলির প্রয়োগের পরিবর্তনের প্রয়োজন হবে)। তবে এটি প্রত্যাশিত। পাবলিক ইন্টারফেসের সমস্ত অংশ (সর্বজনীন / সুরক্ষিত পদ্ধতি সহ) প্রয়োগের জন্য দৃ the়ভাবে আবদ্ধ।
তবে দ্রষ্টব্য: আপনি ক্লাস ঘোষণার অংশ হিসাবে এই বাঁধাই স্পষ্ট করে ডকুমেন্ট করেছেন।
দ্রষ্টব্য: আমি ব্যক্তিগত ডেটা প্রকাশের জন্য পছন্দসই উপায় হিসাবে বন্ধুর উল্লেখ করব না। বন্ধুর অতিরিক্ত ব্যবহার বাস্তবায়ন প্রকাশের মতোই খারাপ হতে পারে। সমস্ত ভাষার বৈশিষ্ট্যগুলির মতো এটি ন্যায়বিচারের সাথে ব্যবহার করা উচিত।
friend
পছন্দ করা হয়েছিল, আপনি বাইরে থেকে ব্যক্তিগত ক্লাসের ডেটা অ্যাক্সেস করার জন্য সাধারণত কোন কোন উপায় ব্যবহার করেন?