চাকরির প্রস্তুতিসি++

সি++ ইন্টারভিউ প্রশ্ন ও উত্তর

১০টি প্রশ্ন · ৬ মিনিট

পলিমরফিজম, কনস্ট্রাক্টর, ফ্রেন্ড ফাংশন, টেমপ্লেট ও STL — সফটওয়্যার ও সিস্টেম প্রোগ্রামিং পদের প্রশ্ন।

সি++ এখনো সিস্টেম প্রোগ্রামিং, গেম আর পারফরম্যান্স-নির্ভর সফটওয়্যারের ভাষা। ইন্টারভিউও সেই অনুযায়ী গভীরে যায়।

দুটি জায়গায় প্রশ্ন ঘোরাফেরা করে — অবজেক্ট মডেল আর মেমরি। নিচের প্রশ্নগুলো সেই দুটি ঘিরেই।

প্রশ্নগুলো

C++ তে পলিমরফিজম (Polymorphism) কী এবং এর প্রকারভেদ কী?

উত্তরে যা রাখবেনপলিমরফিজম হল বিভিন্ন অবজেক্ট একই ইন্টারফেসের মাধ্যমে ভিন্ন ভিন্নভাবে কাজ করতে পারে। প্রকারভেদগুলি হল: কম্পাইলটাইম (মেথড ওভারলোডিং) এবং রানটাইম (মেথড ওভাররাইডিং) পলিমরফিজম।

C++ তে কনস্ট্রাক্টর (Constructor) এবং ডেস্ট্রাক্টর (Destructor) কী এবং তাদের ভূমিকা কী?

উত্তরে যা রাখবেনকনস্ট্রাক্টর হল একটি মেম্বার ফাংশন যা ক্লাসের একটি নতুন অবজেক্ট তৈরি করার সময় স্বয়ংক্রিয়ভাবে আহ্বান করা হয়। ডেস্ট্রাক্টর হল একটি মেম্বার ফাংশন যা অবজেক্ট ধ্বংস হওয়ার সময় আহ্বান করা হয়।

C++ তে ফ্রেন্ড ফাংশন (Friend Function) এবং এর ব্যবহার কী?

উত্তরে যা রাখবেনফ্রেন্ড ফাংশন হল একটি ফাংশন যা একটি ক্লাসের প্রাইভেট এবং প্রোটেক্টেড মেম্বারগুলিতে অ্যাক্সেস করতে পারে, যদিও এটি সেই ক্লাসের মেম্বার নয়।

C++ তে অ্যাবস্ট্রাক্ট ক্লাস এবং পিওর ভার্চুয়াল ফাংশন কী?

উত্তরে যা রাখবেনঅ্যাবস্ট্রাক্ট ক্লাস হল একটি ক্লাস যার একটি বা একাধিক পিওর ভার্চুয়াল ফাংশন থাকে। পিওর ভার্চুয়াল ফাংশন এমন একটি ফাংশন যা ডেরাইভ ক্লাসে অবশ্যই ইমপ্লিমেন্ট করতে হবে।

C++ তে ওভারলোডিং এবং ওভাররাইডিং এর মধ্যে পার্থক্য কী?

উত্তরে যা রাখবেনওভারলোডিং হল একই নামের ফাংশনের বিভিন্ন সংস্করণ তৈরি করা যা বিভিন্ন প্যারামিটার গ্রহণ করে, এবং ওভাররাইডিং হল বেস ক্লাসের একটি ভার্চুয়াল ফাংশনকে ডেরাইভ ক্লাসে পুনঃনির্ধারণ করা।

C++ তে টেম্পলেট (Template) কী এবং এর ব্যবহার কী?

উত্তরে যা রাখবেনটেম্পলেট হল একটি জেনেরিক প্রোগ্রামিং ফিচার যা ফাংশন এবং ক্লাসের জন্য টাইপ নিরপেক্ষ কোড তৈরি করতে ব্যবহৃত হয়।

C++ তে এসটিএল (STL) কী এবং এর প্রধান উপাদানগুলো কী কী?

উত্তরে যা রাখবেনএসটিএল (স্ট্যান্ডার্ড টেমপ্লেট লাইব্রেরি) হল একটি জেনেরিক লাইব্রেরি যা ডেটা স্ট্রাকচার এবং অ্যালগরিদমের জন্য টেম্পলেট ক্লাস এবং ফাংশন সরবরাহ করে। প্রধান উপাদানগুলি হল: কন্টেইনার, ইটারেটর, এবং অ্যালগরিদম।

পয়েন্টার এবং রেফারেন্সের মধ্যে পার্থক্য কী? (What is the difference between pointer and reference?)

উত্তরে যা রাখবেনপয়েন্টার একটি আলাদা ভেরিয়েবল যা অন্য ভেরিয়েবলের ঠিকানা ধরে রাখে — এটি null হতে পারে, পরে অন্য ঠিকানায় সরানো যায়, আর ব্যবহারের সময় * দিয়ে খুলতে হয়। রেফারেন্স হলো বিদ্যমান ভেরিয়েবলের আরেকটি নাম — তৈরির সময়ই একটি ভেরিয়েবলের সঙ্গে বাঁধতে হয়, পরে বদলানো যায় না, আর null হতে পারে না। তাই ফাংশনে প্যারামিটার পাঠানোর সময় রেফারেন্স নিরাপদ ও পরিষ্কার।

C++ তে কীভাবে মেমরি ম্যানেজমেন্ট করা হয় এবং ডায়নামিক মেমরি অ্যালোকেশন কী? (How memory management is done in C++ and what is dynamic memory allocation?)

উত্তরে যা রাখবেনসি++ এ মেমরি দুই জায়গায় থাকে: স্ট্যাক, যেখানে লোকাল ভেরিয়েবল আপনাআপনি তৈরি ও মুছে যায়; আর হিপ, যেখানে আপনি নিজে জায়গা চান ও নিজেই ছাড়েন। ডায়নামিক মেমরি অ্যালোকেশন মানে চলার সময়ে হিপ থেকে জায়গা নেওয়া — new দিয়ে নেওয়া, delete দিয়ে ফেরত দেওয়া। delete করতে ভুলে গেলে মেমরি লিক হয়, তাই আধুনিক সি++ এ unique_ptr বা shared_ptr ব্যবহার করা হয়, যেগুলো নিজেই মেমরি ছেড়ে দেয়।

C++ তে ইনহেরিটেন্স (Inheritance) কী এবং এর বিভিন্ন প্রকার কী কী? (What is Inheritance in C++ and what are its different types?)

উত্তরে যা রাখবেনইনহেরিটেন্স মানে একটি ক্লাস আরেকটি ক্লাসের বৈশিষ্ট্য ও আচরণ পেয়ে যাওয়া — কোড বারবার না লিখে বাড়ানোর উপায়। সি++ এ প্রকারগুলো হলো: সিঙ্গল (একটি বেস ক্লাস), মাল্টিপল (একাধিক বেস ক্লাস, যা জাভায় নেই), মাল্টি-লেভেল (A থেকে B, B থেকে C), হায়ারারকিকাল (একটি বেস থেকে অনেক ডেরাইভড), এবং হাইব্রিড (উপরেরগুলোর মিশ্রণ)।

এই রাউন্ডের জন্য পরামর্শ

  • ওভারলোডিং আর ওভাররাইডিং গুলিয়ে ফেলা সবচেয়ে সাধারণ ভুল। উদাহরণ দিয়ে আলাদা করুন।
  • পয়েন্টার আর মেমরির প্রশ্ন আসবেই — new/delete-এর পাশাপাশি স্মার্ট পয়েন্টার নিয়েও তৈরি থাকুন।

এই বিষয়ে হাতে-কলমে শিখতে চাইলে সংশ্লিষ্ট কোর্স দেখুন।

কোর্স দেখুন