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); ...)। মেজিক এনাম লাইব্রেরি বা রিফ্লেকশন লাইব্রেরি ব্যবহার করলে রানটাইমে নামও পাওয়া যায়।