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

C++-এ enum এর ওপর ইটারেট করা (Enumerate over enum)

C++-এ enum হলো ইউজার-ডিফাইনড ইন্টিজার কনস্ট্যান্ট সেট। ডিফল্টভাবে ০ থেকে শুরু হয়। ইটারেট করার জন্য ইন্টিজার হিসেবে ব্যবহার করা যায় (scoped enum enum class-এ এক্সপ্লিসিট কাস্ট লাগে)।

সিনট্যাক্স

enum enum_name { const1, const2, ... };
enum colors { red, black };
enum suit { heart, diamond=8, spade=3, club };

উদাহরণ: ডিফল্ট ও কাস্টম ভ্যালু

#include <iostream>
using namespace std;

enum colors { red = 5, black };
enum suit { heart, diamond = 8, spade = 3, club };

int main() {
    cout << "colors: " << red << ", " << black << endl; // 5, 6
    cout << "suit: " << heart << ", " << diamond << ", " << spade << ", " << club << endl; // 0, 8, 3, 4
    return 0;
}

আউটপুট

colors: 5, 6
suit: 0, 8, 3, 4

Enum ইটারেশন (Unscoped enum)

enum suit { heart, diamond, spade, club };

int main() {
    for (int i = heart; i <= club; i++)
        cout << "Card Type: " << i << endl;
    return 0;
}

আউটপুট

Card Type: 0
Card Type: 1
Card Type: 2
Card Type: 3

আধুনিক C++ (C++11+): enum class (scoped enum) ব্যবহার করুন। ইটারেট করতে কাস্ট লাগে: for (int i = static_cast<int>(Suit::Heart); ...)। মেজিক এনাম লাইব্রেরি বা রিফ্লেকশন লাইব্রেরি ব্যবহার করলে রানটাইমে নামও পাওয়া যায়।

  1. C++-এ টাইপ ডিডাকশন (Type Deduction) কী?

  2. C++-এ এনামারেটেড টাইপ (enum) কীভাবে ডিফাইন করবেন?

  3. C++-এ typedef ডিক্লেয়ারেশন (typedef Declarations) কী?

  4. C#-এ Enum.GetNames মেথড