Data types are means to identify the type of data and associated operations of handling it. There are three types of data types:
- Pre-defined DataTypes
- Derived Data Types
- User-defined DataTypes

In this article, the User-Defined DataType is explained:
User-Defined DataTypes:
The data types that are defined by the user are called the derived datatype or user-defined derived data type.
These types include:
Below is the detailed description of the following types:
- Class: The building block of C++ that leads to Object-Oriented programming is a Class. It is a user-defined data type, which holds its own data members and member functions, which can be accessed and used by creating an instance of that class. A class is like a blueprint for an object.
Syntax:

Example:
#include <bits/stdc++.h>
using namespace std;
class Geeks {
public :
string geekname;
void printname()
{
cout << "Geekname is: " << geekname;
}
};
int main()
{
Geeks obj1;
obj1.geekname = "GeeksForGeeks" ;
obj1.printname();
return 0;
}
|
Output:
Geekname is: GeeksForGeeks
- Structure: 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.
Syntax:
struct address {
char name[50];
char street[100];
char city[50];
char state[20];
int pin;
};
Example:
#include <iostream>
using namespace std;
struct Point {
int x, y;
};
int main()
{
struct Point arr[10];
arr[0].x = 10;
arr[0].y = 20;
cout << arr[0].x << ", " << arr[0].y;
return 0;
}
|
- Union: Like Structures, union is a user defined data type. In union, all members share the same memory location. For example in the following C program, both x and y share the same location. If we change x, we can see the changes being reflected in y.
#include <iostream>
using namespace std;
union test {
int x, y;
};
int main()
{
union test t;
t.x = 2;
cout << "After making x = 2:"
<< endl
<< "x = " << t.x
<< ", y = " << t.y
<< endl;
t.y = 10;
cout << "After making Y = 10:"
<< endl
<< "x = " << t.x
<< ", y = " << t.y
<< endl;
return 0;
}
|
Output:
After making x = 2:
x = 2, y = 2
After making Y = 10:
x = 10, y = 10
- Enumeration: Enumeration (or enum) is a user defined data type in C. It is mainly used to assign names to integral constants, the names make a program easy to read and maintain.
Syntax:
enum State {Working = 1, Failed = 0};
#include <iostream>
using namespace std;
enum week { Mon,
Tue,
Wed,
Thur,
Fri,
Sat,
Sun };
int main()
{
enum week day;
day = Wed;
cout << day;
return 0;
}
|
- Typedef : C++ allows you to define explicitly new data type names by using the keyword typedef. Using typedef does not actually create a new data class, rather it defines a name for an existing type. This can increase the portability(the ability of a program to be used across different types of machines; i.e., mini, mainframe, micro, etc; without much changes into the code)of a program as only the typedef statements would have to be changed. Using typedef one can also aid in self-documenting code by allowing descriptive names for the standard data types.
Syntax:
typedef type name;
where type is any C++ data type and name is the new name for this data type.
This defines another name for the standard type of C++.
Example:
#include <iostream>
using namespace std;
typedef unsigned char BYTE ;
int main()
{
BYTE b1, b2;
b1 = 'c' ;
cout << " " << b1;
return 0;
}
|
Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape,
GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out -
check it out now!
Last Updated :
28 Jun, 2021
Like Article
Save Article