কম্পিউটার

C++ এ অবজেক্ট এবং ক্লাসের মধ্যে পার্থক্য


এই পোস্টে, আমরা C++ প্রোগ্রামিং ভাষার ক্ষেত্রে একটি অবজেক্ট এবং ক্লাসের মধ্যে পার্থক্য বুঝতে পারব।

C++ এ ক্লাস

  • এটি C++ এ কোডের একটি বিল্ডিং ব্লক যা অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং বাস্তবায়নে সাহায্য করে।
  • এটি একটি প্রকার যা ব্যবহারকারী দ্বারা সংজ্ঞায়িত করা হয়।
  • এটির নিজস্ব ডেটা সদস্য এবং সদস্য ফাংশন রয়েছে।
  • এই ডেটা সদস্য এবং সদস্য ফাংশনগুলি ক্লাসের একটি উদাহরণ তৈরি করে অ্যাক্সেস করা যেতে পারে৷
  • এগুলি ভেরিয়েবলগুলিকে ম্যানিপুলেট করতে ব্যবহার করা যেতে পারে এবং একটি ক্লাসের বস্তুগুলিকে কীভাবে কাজ করতে হবে তা বলার জন্য সম্পত্তি সংজ্ঞায়িত করতে ব্যবহার করা যেতে পারে৷
  • এটি একটি বস্তুর ব্লুপ্রিন্ট হিসাবে বোঝা যেতে পারে।
    • উদাহরণ:কর্মচারীদের শ্রেণি বিবেচনা করুন। অনেক গুণ থাকতে পারে যেমন কর্মচারীর নাম, বয়স, জন্ম তারিখ, পদবী ইত্যাদি।
    • এগুলিকে ডেটা সদস্য বলা হয়।
    • সদস্যের ফাংশনগুলি হতে পারে 'ড্র_স্যালারি', 'গেট_প্রমোশন', যা ক্লাস অবজেক্টের ক্ষেত্রে নির্দিষ্ট কিছু কাজ করে।
    • এগুলি সমস্ত কর্মচারীদের দ্বারা ভাগ করা সাধারণ বৈশিষ্ট্য হবে৷
  • এটি 'ক্লাস' কীওয়ার্ড ব্যবহার করে সংজ্ঞায়িত করা হয়েছে।
  • এটি ক্লাসের নাম দ্বারা অনুসরণ করা হয়।
  • ক্লাস বডি ফুলের বন্ধনীর মধ্যে সংজ্ঞায়িত করা হয়, এবং একটি সেমি-কোলন ব্যবহার করে শেষ করা হয়।
class class_name {
   body_of_class
};

C++ এ অবজেক্ট

  • অবজেক্ট হল ক্লাসের একটি উদাহরণ।
  • যখন একটি ক্লাস সংজ্ঞায়িত করা হয়, তখন এটিতে মেমরি বরাদ্দ করা হয় না।
  • যে মুহূর্তে একটি বস্তু তৈরি হয়, মেমরি ক্লাসের সমস্ত বৈশিষ্ট্যে বরাদ্দ হয়ে যায়।
  • যখন একটি ক্লাস সংজ্ঞায়িত করা হয়, তখন অবজেক্টের স্পেসিফিকেশন সংজ্ঞায়িত করা হয়।
  • যদি সেই ক্লাসটি ব্যবহার করতে হয়, এবং ক্রিয়াকলাপগুলি সম্পাদন করতে হয়, একটি বস্তু তৈরি করতে হবে৷
  • নিচের সিনট্যাক্স ব্যবহার করে অবজেক্টটি স্পষ্টভাবে তৈরি করতে হবে।
class_name object_name;
  • কোনো ক্লাসের ডেটা মেম্বার এবং মেম্বার ফাংশনগুলি ডট ('.') অপারেটরের সাহায্যে একটি অবজেক্টের মাধ্যমে অ্যাক্সেস করা যায়।
    • উদাহরণ:অনুমান করুন প্রয়োজনীয় বৈশিষ্ট্য এবং সদস্য ফাংশন সহ একটি ক্লাস তৈরি করা হয়েছে৷
    • একবার সেই ক্লাসের সাপেক্ষে একটি অবজেক্ট তৈরি হয়ে গেলে, সদস্য ফাংশনগুলি নীচের উপায়ে অ্যাক্সেস করা যেতে পারে:
object_name.member_function()
  • প্রকৃতিতে সর্বজনীন ডেটা মেম্বারদের একই পদ্ধতিতে অ্যাক্সেস করা যেতে পারে, যেমন উপরে দেখানো হয়েছে, অর্থাৎ '।' অপারেটর।
  • পাবলিক মেম্বার হল তারা যারা 'পাবলিক' কীওয়ার্ড ব্যবহার করে সংজ্ঞায়িত করা হয়।
  • প্রাইভেট মেম্বার হল যারা 'প্রাইভেট' কীওয়ার্ড ব্যবহার করে সংজ্ঞায়িত করা হয়।
  • এই সদস্যদের সরাসরি বস্তু দ্বারা অ্যাক্সেস করা যাবে না।
  • 'পাবলিক', 'প্রাইভেট' এবং 'সুরক্ষিত' কীওয়ার্ডগুলি ডেটা সদস্যদের অ্যাক্সেস নিয়ন্ত্রণ হিসাবে পরিচিত।
  • সদস্যের ফাংশনগুলি যেগুলি ক্লাসের ভিতরে সংজ্ঞায়িত করা হয় ডিফল্টরূপে ইনলাইন হিসাবে বিবেচিত হয়৷
  • ইনলাইন ফাংশনগুলি হল যেগুলি ফাংশনটি সংজ্ঞায়িত করার পরে প্রসারিত হয়। কোড কম্পাইল করা হলে সেগুলি সর্বত্র অনুলিপি করা হয় (ম্যাক্রোর অনুরূপ)। এর মানে হল ফাংশন কল করার ওভারহেড কমে গেছে।
  • যেকোন নন-ক্লাস ফাংশনকে 'ইনলাইন' কীওয়ার্ড সংযুক্ত করে একটি ইনলাইন ফাংশন হিসাবে তৈরি করা যেতে পারে।

  1. C++ প্রোগ্রামে 'struct' এবং 'typedef struct' এর মধ্যে পার্থক্য?

  2. C++ এ ব্যক্তিগত, সর্বজনীন এবং সুরক্ষিত সংশোধকদের মধ্যে পার্থক্য

  3. C++ এ ডট (.) অপারেটর এবং -> এর মধ্যে পার্থক্য কী?

  4. C# এ ক্লাস এবং স্ট্রাকচারের মধ্যে পার্থক্য