Skip to content
Related Articles
Get the best out of our app
GeeksforGeeks App
Open App
geeksforgeeks
Browser
Continue

Related Articles

Difference between Struct and Enum in C/C++ with Examples

Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article

Structure in C++

A structure is a user-defined data type in C/C++. A structure creates a data type that can be used to group items of possibly different types into a single type. The ‘struct’ keyword is used to create a structure. 

Syntax:

struct structureName{

    member1;

    member2;

    member3;

    .

    .

    .

    memberN;

};

Below is the implementation:

C++




#include<stdio.h>
 
struct Point
{
int x, y;
};
 
int main()
{
struct Point p1 = {0, 1};
 
// Accessing members of point p1
p1.x = 10;
printf ("x = %d, y = %d", p1.x, p1.y);
 
return 0;
}

Output

x = 10, y = 1

Structures in C++ can contain two types of members:  

  • Data Member: These members are normal C++ variables. We can create a structure with variables of different data types in C++.
  • Member Functions: These members are normal C++ functions. Along with variables, we can also include functions inside a structure declaration.

Enum in C++

Enum is the short name for enumeration. It is a user-defined data type. It is used to define a list of options that can be selected. Once, enum is declared we cannot change its value, the compiler will throw an error. Two enumerations cannot share the same names.

enum enumName{

    member1;

    member2;

    member3;

    .

    .

    .

    memberN;

};

Below is the implementation:

C++




#include <bits/stdc++.h>
using namespace std;
 
// Defining enum Year
enum year {
    Jan,
    Feb,
    Mar,
    Apr,
    May,
    Jun,
    Jul,
    Aug,
    Sep,
    Oct,
    Nov,
    Dec
};
 
// Driver Code
int main()
{
    int i;
 
    // Traversing the enum year
    for (i = Jan; i <= Dec; i++)
        cout << i << endl;
 
    return 0;
}

Output

0
1
2
3
4
5
6
7
8
9
10
11

Difference between Struct and Enum

S No.StructEnum
1The “struct” keyword is used to declare a structureThe “enum” keyword is used to declare enum.
2The structure is a user-defined data type that is a collection of dissimilar data types.Enum is to define a collection of options available.
3A struct can contain both data variables and methods. Enum can only contain data types.
4A struct supports a private but not protected access specifier.Enum does not have private and protected access specifier.
5The struct cannot be inherited.Enum also does not support Inheritance.
6Structure supports encapsulation.Enum doesn’t support encapsulation.
7When the structure is declared, the values of its objects can be modified.Once the enum is declared, its value cannot be changed, otherwise, the compiler will throw an error.
8

Struct only contains parameterized constructors and no destructors. 

The compiler does not generate a default constructor for a struct.

Enum does not contain constructors and destructors.
9The values allocated to the structure are stored in stack memory.The memory to enum data types is allocated in the stack.

My Personal Notes arrow_drop_up
Last Updated : 01 Jun, 2022
Like Article
Save Article
Similar Reads