ENUMERATED DATATYPES
USER DEFINED DATA TYPES
Data Type Defined By Programmer
Allows Use Of More Complex Data
Typically Defined Globally So Variables Of The
Type Can Be Declared Wherever Needed
Types Include:
enumerated
arrays
structures
array of structures
linked list
ENUMERATED DATA TYPE
User Defined Type
Used To Increase Readability Of Programs
Assigns Meaningful Name To Value
Programmer Defines Names Of Values
Internal Data Type That Cannot Be Read Or
Written
ENUMERATED DATA TYPE
Requires List Of Values (Enumerated Constants)
List Is Identified With A New Data Type
Values Are Not char, string Or Number
No ‘ ‘ or “ “ Around Constants
Constants Must Be Valid Identifier Names
Constants Cannot Be Used In Another
Enumerated Data Type In Same Program
Proper Syntax:
enum colors {BLACK, RED, GREEN, BLUE, BROWN};
ENUMERATED DATA TYPE
Declaring Data Type Does Not Allocate Memory
Variables Of Type Needs To Be Declared
colors shirtColor, pantColor
This Creates Two Variables That Can Store
Enumerated Constant
shirtColor = RED;
pantColor = BLUE;
ENUMERATED DATA TYPE
The Enumerated Constants Are An Ordered List
Of Values (ordinal type)
The First Constant Has The Ordinal Value Zero
Each Successive Constant Is One Greater
Internally The Data Type Stored When Using The
Enumerated Constant Is Integer
cout << pantColor << ‘ ‘ << shirtColor << endl;
displays: 3 1
ENUMERATED DATA TYPE
Constants Are Ordinal So Relational Operators
Can Be Used
if (shirtColor > pantColor)
cout << “You May Want To Change Your Shirt” << endl;
Arithmetic Operators Cannot Be Used Directly
shirtColor = pantColor + 1; // THIS IS ILLEGAL
However Use Of Static Cast Allows Addition / Subtraction
shirtColor = static_cast<colors>(pantColor + 1) // IS LEGAL
ENUMERATED DATA TYPE
WARNING, WARNING, WARNING….
There Is No Predecessor Before The First
Constant And No Successor After The Last
Constant
Trying To Subtract One From The First Or Add
One To The Last Causes An Undefined Value
ENUMERATED DATA TYPE
Two Major Drawbacks:
Cannot Be Input Directly From Keyboard
Cannot Be Output Directly To The Screen (except for
ordinal value)
Solving Problem Requires:
Creating An Input Function That Accepts Allowed
Input And Converts To Enumerated Value
Creating An Output Function That Converts
Enumerated Value To A Value That Can Be Displayed
ENUMERATED DATA TYPE
In The End:
Enumerated Data Types Provide For More Readable
Code
But Often Require Extra Coding To Make Them
Useable
© Copyright 2026 Paperzz