Total Articles 180
Here is a sample code of enumeration type wrapping class in C++.
[Source Code]
#include <stdio.h> class Days { public: enum _Days { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday }; protected: _Days value; public: Days() { } // default ctor Days(const _Days value) { this->value = value; } // conversion ctor operator _Days() const { return value; } // cast operator }; void size_of_test() { printf("sizeof(Days)=%d\n", sizeof(Days)); } void default_ctor_test() { Days today; // default ctor Days tomorrow; // default ctor } void conversion_ctor_test() { Days today(Days::Friday); // conversion ctor Days tomorrow(Days::Saturday); // conversion ctor } void copy_ctor_test() { Days today(Days::Friday); // conversion ctor Days tomorrow(today); // copy ctor } void compare_test() { Days today(Days::Friday); Days tomorrow(Days::Saturday); if (today == tomorrow) // cast operator printf("same\n"); else printf("not same\n"); if (today < tomorrow) // cast operator printf("less \n"); else printf("not less\n"); if (today > tomorrow) // cast operator printf("greater\n"); else printf("not greater\n"); } void pointer_test() { Days today(Days::Friday); Days tomorrow(Days::Saturday); Days* p_today = &today; Days* p_tomorrow = &tomorrow; if (*p_today == *p_tomorrow) // cast operator printf("same\n"); else printf("not same\n"); } void reference_test() { Days today(Days::Friday); Days tomorrow(Days::Saturday); Days& r_today = today; Days& r_tomorrow = tomorrow; if (r_today == r_tomorrow) // cast operator printf("same\n"); else printf("not same\n"); } int main() { size_of_test(); default_ctor_test(); conversion_ctor_test(); copy_ctor_test(); compare_test(); pointer_test(); reference_test(); }