Blog

C and C++ মূল পার্থক্য

C++-এ “class” ও “object” থাকে, কিন্তু C-তে এগুলো নেই।
C হচ্ছে একটি “procedural programming language” (ধাপে ধাপে নির্দেশ দেয়া), আর C++ হচ্ছে “object-oriented programming language” (বস্তুভিত্তিক প্রোগ্রামিং)।

বাস্তব উদাহরণ:

ধরো তুমি একটা গাড়ি তৈরি করছো।

C ভাষায় (procedural):

তুমি আলাদা আলাদা ফাংশন বানাবে—

  • startCar()

  • stopCar()

  • fuelLevel()

এখানে গাড়ির অবস্থা (data) আর কাজ (function) আলাদা আলাদা। সব কিছু গ্লোবালি বা আলাদা হ্যান্ডেল করতে হয়।

যেন মাথা আর হাত-পা আলাদা কন্ট্রোলে চলে।

C++ ভাষায় (object-oriented):

তুমি একটা class Car বানাবে।

c++
class Car {
public:
int fuel;
void start() {
// গাড়ি চালু হবে
}
void stop() {
// গাড়ি বন্ধ হবে
}
};

তারপর তুমি object বানাবে:

cpp++
Car myCar;
myCar.start();

এখানে Car ক্লাসটা হচ্ছে গাড়ির ডিজাইন, আর myCar হচ্ছে সেই ডিজাইন থেকে বানানো আসল গাড়ি। ডেটা আর কাজ — দুটোই একসাথে প্যাকেট করা থাকে ক্লাসের ভিতর।

মাথা, হাত, পা — সব কিছু মিলিয়ে একসাথে একটা মানুষ।

সংক্ষেপে পার্থক্য:

দিকCC++
ধরণProceduralObject-Oriented
ক্লাস/অবজেক্টনেইআছে
ইনক্যাপসুলেশন (Encapsulation)নেইআছে
কোড পুনঃব্যবহারকঠিনসহজ (Inheritance)
উদাহরণprintf(), scanf()class, object, cout, cin

সহজভাবে মনে রাখো:

C হচ্ছে যন্ত্রের মত — শুধু কাজ করে, কিন্তু কোনো স্মৃতি বা নিজস্ব চিন্তা নেই।
C++ হচ্ছে মানুষের মত — নিজের তথ্য রাখে, কাজ করে, সিদ্ধান্ত নিতে পারে।

উদাহরণ: ফুটবল খেলা ও প্লেয়ার

🔹 Class = প্লেয়ার এর ডিজাইন / ব্লুপ্রিন্ট

ধরো, তুমি বলছো:

“আমাকে একজন ফুটবল প্লেয়ার বানাতে হবে।”

তুমি কল্পনা করছো—

  • নাম থাকবে

  • জার্সি নাম্বার থাকবে

  • গোল করতে পারবে

  • দৌড়াতে পারবে

তুমি এই ডিজাইনটা লিখে রাখছো → এটাই হচ্ছে class

c++
class FootballPlayer {
public:
string name;
int jerseyNumber;

void run() {
// দৌড়াবে
}

void scoreGoal() {
// গোল দেবে
}
};

Object = আসল প্লেয়ার

এখন তুমি বললে:

“এই ডিজাইন থেকে আমি একজন প্লেয়ার তৈরি করব। তার নাম হবে ‘Jubayer’, আর জার্সি নাম্বার 10।”

এটাই হচ্ছে object – class থেকে তৈরি বাস্তব রূপ

c++
FootballPlayer player1; // object
player1.name = "Jubayer";
player1.jerseyNumber = 10;
player1.run(); // Jubayer দৌড়াবে
player1.scoreGoal(); // Jubayer গোল দিবে

মনে রাখার সহজ ফর্মুলা:

উপাদানমানে
Classপ্লেয়ারের নকশা / ছক
Objectসেই নকশা থেকে তৈরি আসল মানুষ
Functionসেই মানুষ কী কী কাজ করতে পারে (গোল দেওয়া, দৌড়ানো)
Propertyতার নাম, নাম্বার, গতি ইত্যাদি

সংক্ষেপে:

Class = “ফুটবল প্লেয়ার বলতে কী বুঝি?” – ডিজাইন
Object = Jubayer, Messi, Ronaldo – ডিজাইন থেকে তৈরি আসল খেলোয়াড়