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

C++ প্রোগ্রামিং ইন্টারনালস (C++ Internals)


C++ ইন্টারনালস মানে C++ কম্পাইলার কীভাবে .cpp কোড কম্পাইল করে এবং আউটপুট দেয়। C++ সিস্টেম সফটওয়্যার লিখতে ব্যবহৃত একটি জনপ্রিয় প্রোগ্রামিং ভাষা। এটি C প্রোগ্রামিং ভাষার একটি এক্সটেনশন। C একটি কম্পাইল্ড ভাষা। C++ কম্পাইলার C++ কোড কম্পাইল করে একটি অবজেক্ট বা এক্সিকিউটেবল ফাইল তৈরি করে। এক্সিকিউটেবল বা বাইনারি ফাইলগুলিতে মেশিন এক্সিকিউটেবল ইনস্ট্রাকশন এবং মেশিন ইনস্ট্রাকশনের কিছু মেটাডেটা থাকে।

C++ প্রোগ্রাম কম্পাইল করার একটি সাধারণ পদ্ধতি হলো C++ কোডের ওপর কম্পাইলার চালানো। কম্পাইলার মেশিন ইনস্ট্রাকশন তৈরি করবে যা একটি CPU সাপোর্ট করে। এর মানে হলো অবজেক্ট-অরিয়েন্টেড কনসেপ্ট মেশিন ইনস্ট্রাকশন ব্যবহার করে বাস্তবায়িত হয়। ভিন্ন C++ কম্পাইলার ভিন্ন কৌশল ব্যবহার করতে পারে এবং ভিন্ন ভাষায় লেখা হতে পারে। কিন্তু পার্থক্যগুলো বেশি নয় এবং প্রতিটি কম্পাইলার একটি সাধারণ প্যাটার্ন ফলো করে।

যে ব্যক্তি কম্পাইলারে কোড কম্পাইল হওয়ার প্রক্রিয়া বোঝতে চান তিনি C++ ইন্টারনালস বুঝতে পারবেন। এই কম্পাইলার ওয়ার্কিং বোঝা প্রায়শই আপনাকে ভালো কোড লিখতে সাহায্য করে।

ডেভেলপার এবং প্রোগ্রামার যারা মিক্সড-মোড কোড (C, C++, অ্যাসেমблі) লিখেন তাদের জন্য এটি খুব সহায়ক।

নিচে দেওয়া কিছু প্রসেস C++ ইন্টারনালস-এর মূল কম্পোনেন্ট:

  • ফাংশন ওভারলোডিং (Function Overloading) - একই নামে একাধিক ডেফিনিশন দেওয়া
  • ক্লাস (Class) - একটি এনটিটি যা ডেটা এবং সম্পর্কিত ফাংশন একসাথে ধারণ করে।
  • স্ট্রাকচার (Structure) - ভিন্ন ডেটা টাইপের ডেটা ধারণকারী একটি এনটিটি।
  • কনস্ট্রাক্টর (Constructor) - একটি ক্লাসের ডিফল্ট ফাংশন যা অবজেক্ট তৈরি হলে কল হয়।
  • ডেস্ট্রাক্টর (Destructor) - একটি ক্লাসের ডিফল্ট ফাংশন যা অবজেক্ট ধ্বংস হলে কল হয়।
  • ইনহেরিটেন্স (Inheritance) - একটি ক্লাসের মেম্বার অন্য ক্লাসে ব্যবহার করার কনসেপ্ট।
  • মাল্টিপল ইনহেরিটেন্স (Multiple Inheritance / Multiple Base Classes) - একটি ক্লাস একাধিক বেস ক্লাস থেকে ইনহেরিট করে।
  • মাল্টিলেভেল ইনহেরিটেন্স (Multilevel Inheritance) - A, B থেকে ইনহেরিট করে যা C থেকে ইনহেরিট করে।
  • মাল্টিপল বেস ক্লাস (Multiple Base Classes) - এটাও মাল্টিপল ইনহেরিটেন্স।
  • ভার্চুয়াল ফাংশন (Virtual functions) - চাইল্ড ক্লাসে ডিফাইন করা ফাংশন।
  • ভার্চুয়াল বেস ক্লাস (Virtual Base Class) - একই বেস ক্লাসের একাধিক ইনস্ট্যান্স প্রতিরোধ করে।

  1. C++-এ অ্যারে ক্লাস (std::array)

  2. C++-এ স্ট্রাকচার vs ক্লাস (Structure vs class in C++)

  3. C++-এ লোকাল ক্লাস

  4. C++-এ অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (OOP) কীভাবে শুরু করবেন?