কম্পিউটার টিউটোরিয়াল

C++-এ Aggregates এবং PODs (Plain Old Data) কী?

POD (Plain Old Data): এমন ক্লাস/স্ট্রাক্ট যেটিতে শুধু মেম্বার ভেরিয়েবল থাকে - কোনো ইউজার-ডিফাইনড কনস্ট্রাক্টর, ডিস্ট্রাক্টর, ভার্চুয়াল ফাংশন, বেস ক্লাস, প্রাইভেট/প্রোটেক্টেড নন-স্ট্যাটিক মেম্বার নেই।

POD উদাহরণ

struct MyStruct {
    int key;
    string data; // C++11-এ std::string নন-POD, তাই এটি POD নয়
};
// সঠিক POD:
struct PodStruct {
    int key;
    double value;
    char buffer[10];
};

Aggregate

এরে বা এমন ক্লাস যেটিতে:

  • ইউজার-ডিক্লেয়ারড কনস্ট্রাক্টর নেই
  • প্রাইভেট/প্রোটেক্টেড নন-স্ট্যাটিক মেম্বার নেই
  • বেস ক্লাস নেই
  • ভার্চুয়াল ফাংশন নেই

POD এবং Aggregate পার্থক্য

সব POD হলো Aggregate, কিন্তু সব Aggregate POD নয়। POD হতে হলে অতি হবে:

  • ইউজার-ডিফাইনড কপি অ্যাসাইনমেন্ট অপারেটর নেই
  • ইউজার-ডিফাইনড ডিস্ট্রাক্টর নেই
  • নন-স্ট্যাটিক মেম্বাররা সব POD টাইপের হবে

উপযোগিতা: POD টাইপগুলো C-র সাথে কম্প্যাটিবল, মেমরি লে আউট প্রেডিক্টেবল, memcpy/memmove দিয়ে কপি করা যায়।

  1. C++-এ মাল্টিপ্লিকেটিভ অপারেটর (Multiplicative Operators) কী?

  2. C++-এ ভেরিয়েবল এবং ভেরিয়েবলের টাইপগুলো কী?

  3. C++-এ cin, cout এবং cerr স্ট্রিম কী?

  4. C++-এ signed এবং unsigned কিওয়ার্ড