আমি বিদ্যমান উত্তরগুলিতে যুক্ত করতে যাচ্ছি কারণ আধুনিক সি ++ এখন একটি জিনিস এবং এই জাতীয় প্রশ্নগুলির সাহায্যে অফিসিয়াল কোর গাইডলাইন তৈরি করা হয়েছে।
গাইডলাইন থেকে এখানে একটি প্রাসঙ্গিক বিভাগ:
সি .২: ক্লাসটির যদি ইনগ্রেন্ট থাকে তবে ক্লাসটি ব্যবহার করুন; ডেটা সদস্যরা স্বতন্ত্রভাবে পরিবর্তিত হতে পারে যদি কাঠামো ব্যবহার করুন
একটি আক্রমণকারী হ'ল অবজেক্টের সদস্যদের জন্য একটি যৌক্তিক শর্ত যা কোনও কনস্ট্রাক্টরকে অবশ্যই গণ্য সদস্যের কাজগুলি ধরে নেওয়ার জন্য প্রতিষ্ঠা করতে হবে। আক্রমণকারী প্রতিষ্ঠিত হওয়ার পরে (সাধারণত কোনও নির্মাণকারী দ্বারা) প্রতিটি সদস্য ফাংশনকে বস্তুর জন্য ডাকা যেতে পারে। একজন আক্রমণকারীকে অনানুষ্ঠানিকভাবে বলা যেতে পারে (উদাহরণস্বরূপ, একটি মন্তব্যে) বা আরও আনুষ্ঠানিকভাবে প্রত্যাশা ব্যবহার করে using
সমস্ত ডেটা সদস্য যদি একে অপরের থেকে স্বতন্ত্রভাবে পরিবর্তিত হতে পারে তবে কোনও আক্রমণকারী সম্ভব হয় না।
কোনও শ্রেণীর যদি কোনও ব্যক্তিগত ডেটা থাকে তবে কোনও ব্যবহারকারীর বিনা ব্যবহারকারীর ব্যবহার ব্যতীত কোনও বিষয় সম্পূর্ণরূপে আরম্ভ করতে পারে না। সুতরাং, শ্রেণি নির্ধারক একটি নির্মাণকারী সরবরাহ করবে এবং এর অর্থ নির্দিষ্ট করতে হবে। এটি কার্যকরভাবে একটি আগত ব্যক্তিকে সংজ্ঞায়িত করার সুনির্দিষ্ট প্রয়োজনের অর্থ।
প্রয়োগ
সমস্ত ডেটা বেসরকারী এবং জনসাধারণের সদস্যদের সহ ক্লাস সহ স্ট্রাইকগুলি সন্ধান করুন।
দেওয়া কোডের উদাহরণগুলি:
struct Pair { // the members can vary independently
string name;
int volume;
};
// but
class Date {
public:
// validate that {yy, mm, dd} is a valid date and initialize
Date(int yy, Month mm, char dd);
// ...
private:
int y;
Month m;
char d; // day
};
Class
উদাহরণস্বরূপ, একে অপরের কাছ থেকে প্রাপ্ত বা আন্তঃসম্পর্কিত সদস্যদের জন্য এগুলি ভালভাবে কাজ করে। তারা তাত্ক্ষণিকভাবে স্যানিটি পরীক্ষা করতে সহায়তা করতে পারে। Struct
"ব্যাগ অফ ডেটা" রাখার জন্য ভাল কাজ করে, যেখানে বিশেষ কিছু হয় না তবে সদস্যরা যৌক্তিকভাবে একত্রিত হওয়ার বিষয়টি বোঝায়।
এ থেকে, এটি উপলব্ধি করে যে class
এসইগুলি এনক্যাপসুলেশন এবং অন্যান্য সম্পর্কিত কোডিং ধারণাগুলি সমর্থন করে, এটি struct
কেবল খুব কার্যকর নয়।