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

C++ প্রোগ্রামিং ল্যাঙ্গুয়েজের বেসিকস


C++ হলো একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ যা ১৯৭৯ সালে বেল ল্যাবসে বিয়ার্ন স্ট্রৌস্ট্রুপ দ্বারা ডেভেলপ করা হয়েছিল। C++ কে একটি মিডল-লেভেল ল্যাঙ্গুয়েজ মনে করা হয়, কারণ এটি হাই-লেভেল এবং লো-লেভেল ল্যাঙ্গুয়েজ ফিচার দুটির সমন্বয় ধারণ করে। এটি C-এর একটি সুপারসেট, এবং ভায়বশীয় কোনো C প্রোগ্রামই একটি বৈধ C++ প্রোগ্রাম। C++ উইন্ডোজ, ম্যাক ওএস, এবং ইউনিক্সের বিভিন্ন ভার্সনে রান করে।

এটি একটি ল্যাঙ্গুয়েজ যা:

  • স্ট্যাটিক্যালি টাইপড - একটি প্রোগ্রামিং ল্যাঙ্গুয়েজকে স্ট্যাটিক্যালি টাইপড বলা হয় যখন টাইপ চেকিং কম্পাইল-টাইমে করা হয় রান-টাইমে না।
  • কম্পাইল্ড - একটি কম্পাইল্ড ল্যাঙ্গুয়েজ হলো এমন একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ যার ইমপ্লিমেন্টেশন সাধারণত কম্পাইলার (সোর্স কোড থেকে মেশিন কোড জেনারেট করার ট্রান্সলেটর), এবং ইন্টারপ্রেটার নয় (সোর্স কোডের স্টেপ-বাই-স্টেপ এক্সিকিউশন, যেখানে কোনো প্রি-রানটাইম ট্রান্সলেশন নেই)।
  • জেনারেল-পারপাস - একটি জেনারেল-পারপাস ল্যাঙ্গুয়েজ হলো এমন একটি ল্যাঙ্গুয়েজ যা অ্যাপ্লিকেশন ডোমেনের ব্যাপক পরিধিতে প্রযোজ্য, এবং কোনো নির্দিষ্ট ডোমেনের জন্য স্পেশালাইজড ফিচার নেই। এটি ডোমেন-স্পেসিফিক ল্যাঙ্গুয়েজ (DSL) এর বিপরীত যেটি একটি নির্দিষ্ট অ্যাপ্লিকেশন ডোমেনের জন্য স্পেশালাইজড।
  • কেস-সেনসিটিভ - C++ কেস সেনসিটিভ, অর্থাৎ সকল আইডেন্টিফায়ার, কীওয়ার্ড ইত্যাদি ভিন্ন কেসে থাকলে ভিন্ন অর্থ বহন করে।
  • ফ্রি-ফর্ম - একটি ফ্রি-ফর্ম ল্যাঙ্গুয়েজ হলো এমন একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ যেখানে প্রোগ্রাম টেক্সটে ক্যারেক্টারهای পজিশনিং無關紧要।
  • প্রোসিডিউরাল প্রোগ্রামিং - একটি প্রোসিডিউরাল প্রোগ্রামিং ল্যাঙ্গুয়েজ হলো একটি ইমপেরেটিভ প্রোগ্রামিং ল্যাঙ্গুয়েজ যেসব প্রোগ্রামই মূলত রি-ইউজেবল প্রোসিডিউরসের মাধ্যমে স্ট্রাকচার্ড হয়, যেমন সাবরুটিন এবং/অথবা ফাংশন।
  • অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং - অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (OOP) হলো একটি প্রোগ্রামিং প্যারাডাইম যা "অবজেক্ট" কনসেপ্টের ওপর ভিত্তি করে, যাতে ডেটা থাকতে পারে (ফিল্ডস হিসেবে, যাকে আট্রিবিউট বলা হয়); এবং কোড (প্রোসিডিউর হিসেবে, যাকে মেথড বলা হয়)।
  • জেনেরিক প্রোগ্রামিং - জেনেরিক প্রোগ্রামিং হলো কম্পিউটার প্রোগ্রামিংর একটি স্টাইল যেখানে অ্যালগরিদমগুলো টাইপসের মাধ্যমে লেখা হয় যা পরে নির্দিষ্ট টাইপের জন্য ইনস্ট্যানশিয়েট হয় প্যারামিটার হিসেবে প্রদান করা হলে।

তাহলে আপনি সিদ্ধান্ত নিয়েছেন C++-এ প্রোগ্রামিং শিখতে কিন্তু জানেন না কোথা থেকে শুরু করবেন। এখানে সংক্ষিপ্ত ওভারভিউ দেওয়া হলো কীভাবে শুরু করতে পারেন।

একটি C++ কম্পাইলার পান

এটি প্রথম ধাপ যা আপনি C++-এ প্রোগ্রামিং শিখতে শুরু করার আগে করবেন। সব বড় OS প্ল্যাটফর্মের জন্য ভালো ফ্রি C++ কম্পাইলার উপলব্ধ। আপনার প্ল্যাটফর্মের উপযুক্ত একটি ডাউনলোড করুন অথবা tutorialspoint.com-এর অনলাইন কম্পাইলার ব্যবহার করুন https://www.tutorialspoint.com/compile_cpp_online.php

  • GCC - GCC হলো GNU কম্পাইলার চেইন যা মূলত বিভিন্ন কম্পাইলারের একটি সংকলন যা GNU তৈরি করেছে। আপনি এই কম্পাইলার ডাউনলোড ও ইনস্টল করতে পারেন https://gcc.gnu.org/ থেকে
  • Clang - Clang হলো LLVM কমিউনিটি দ্বারা রিলিজ করা একটি কম্পাইলার কালেকশন। এটি সব প্ল্যাটফর্মে উপলব্ধ এবং আপনি এটি ডাউনলোড ও ইনস্টল ইনস্ট্রাকশন পাবেন https://clang.llvm.org/get_started.html থেকে
  • Visual C++ 2017 Community - এটি মাইক্রোসফট দ্বারা উইন্ডোজের জন্য বিল্ট একটি ফ্রি C++ কম্পাইলার। আপনি এটি ডাউনলোড ও ইনস্টল করতে পারেন https://www.visualstudio.com/vs/cplusplus/ থেকে

একটি C++ প্রোগ্রাম লিখুন

এখন কম্পাইলার ইনস্টল হয়ে গেলে, C++ প্রোগ্রাম লেখার সময়। চলুন প্রোগ্রামিং উদাহরণের চূড়ান্ত বিম্ব, সেটি হচ্ছে Hello world প্রোগ্রাম দিয়ে শুরু করি। আমরা C++ ব্যবহার করে হ্যালো ওয়ার্ল্ড স্ক্রিনে প্রিন্ট করব এই উদাহরণে। hello.cpp নামে একটি নতুন ফাইল তৈরি করুন এবং নিচের কোডটি লিখুন:

উদাহরণ

#include <iostream>
int main() {
    std::cout << "Hello World\n";
}

আসুন এই প্রোগ্রামটি ভাগ করে দেখি।

লাইন ১ - আমরা #include <iostream> লাইন দিয়ে শুরু করি যা কম্পাইলারকে বলে iostream ফাইল থেকে কোড কপি করে আমাদের সোর্স ফাইলে পেস্ট করতে। হেডার iostream স্ট্যান্ডার্ড ইনপুট এবং আউটপুট অপারেশন পারফর্ম করতে দেয়, যেমন এই প্রোগ্রামের আউটপুট (Hello World) স্ক্রিনে লেখা। হ্যাশ সাইন (#) দিয়ে শুরু হওয়া লাইনগুলো ডিরেক্টিভ যা প্রিপ্রসেসর দ্বারা পড়া এবং ইন্টারপ্রেট করা হয়।

লাইন ২ - একটি খালি লাইন: খালি লাইন প্রোগ্রামের ওপর কোনো প্রভাব ফেলে না।

লাইন ৩ - তারপর আমরা main নামে একটি ফাংশন ডিক্লেয়ার করি যার রিটার্ন টাইপ int। main() হলো আমাদের প্রোগ্রামের এন্ট্রি পয়েন্ট। যখনই আমরা একটি C++ প্রোগ্রাম রান করি, আমরা main ফাংশন দিয়ে শুরু করি এবং এই ফাংশনের প্রথম লাইন থেকে এক্সিকিউশন শুরু করে প্রতিটি লাইন এক্সিকিউট করতে থাকে শেষ পর্যন্ত পৌঁছাতে। এখানে আমরা কার্লি ব্রেস ({) দিয়ে একটি ব্লক শুরু করি। এটি main-এর ফাংশন ডেফিনিশনের শুরু চিহ্নিত করে, এবং লাইন ৫-এ ক্লোজিং ব্রেস (}) এর সাথে শেষ হয়। এই দুটি ব্রেসের মাঝপথের সব স্টেটমেন্টগুলো ফাংশনের বডি যা ডিফাইন করে main কল হলে কী হবে।

লাইন ৪ -

std::cout << "Hello World\n";

এই লাইনটি একটি C++ স্টেটমেন্ট। এই স্টেটমেন্টের তিনটি অংশ আছে: প্রথম, std::cout, যা স্ট্যান্ডার্ড কনসোল আউটপুট ডিভাইসকে আইডেন্টিফাই করে। দ্বিতীয়, ইনসারশন অপারেটর << যা বোঝায় এর পরের টি std::cout-এ ইনসার্ট হবে। শেষে, কোটেশনের ভিতরে একটি সেন্টেন্স যা আমরা স্ক্রিনে প্রিন্ট করতে চাই। এটি আরও স্পষ্ট হবে যখন আমরা C++ শিখতে এগিয়ে যাব।

সংক্ষেপে, আমরা cout অবজেক্টকে "Hello world\n" স্ট্রিং দিই স্ট্যান্ডার্ড আউটপুট ডিভাইসে প্রিন্ট করার জন্য।

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

প্রোগ্রাম কম্পাইল করুন

এখন আমরা প্রোগ্রামটি লিখে ফেললেই, আমাদের এটিকে প্রসেসর বুঝতে পারে এমন ভাষায় ট্রান্সলেট করতে হবে, অর্থাৎ বাইনারি মেশিন কোডে। আমরা এটি কম্পাইলার দিয়ে করব যা আমরা প্রথম ধাপে ইনস্টল করেছিলাম। আপনাকে আপনার টার্মিনাল/কম্ড খুলতে হবে এবং cd কমান্ড দিয়ে hello.cpp ফাইলটির লোকেশনে নেভিগেট করতে হবে। ধরে নিলাম আপনি GCC ইনস্টল করেছেন, আপনি প্রোগ্রাম কম্পাইল করতে নিচের কমান্ড ব্যবহার করতে পারেন:

$ g++ -o hello hello.cpp

এই কমান্ডের মানে হলো আপনি g++ কম্পাইলারকে hello.cpp সোর্স ফাইল ব্যবহার করে hello নামে একটি আউটপুট ফাইল তৈরি করতে চান।

প্রোগ্রাম রান করুন

এখন আমরা প্রোগ্রাম লিখে ফেললাম এবং কম্পাইল করলাম, এবার রান করার সময়! আপনি প্রোগ্রাম রান করতে পারেন:

$ ./hello

আউটপুট

আপনি নিচের আউটপুট পাবেন:

Hello world
  1. সি++-এ এক্সেপশন হ্যান্ডেলিং (Exception Handling) বেসিক্স

  2. কেন C++ সেরা প্রোগ্রামিং ল্যাঙ্গুয়েজ?

  3. C++ প্রোগ্রামিং ল্যাঙ্গুয়েজ কী?

  4. C# প্রোগ্রামিং কী? (What is C# Programming?)