Los tipos de datos son medios para identificar el tipo de datos y las operaciones asociadas para manejarlos. Hay tres tipos de tipos de datos:
- Tipos de datos predefinidos
- Tipos de datos derivados
- Tipos de datos definidos por el usuario
En este artículo, se explica el tipo de datos definido por el usuario:
Tipos de datos definidos por el usuario:
Los tipos de datos definidos por el usuario se denominan tipos de datos derivados o tipos de datos derivados definidos por el usuario.
Estos tipos incluyen:
- Clase
- Estructura
- Unión
- Enumeración
- Tipo de datos definido por Typedef
A continuación se muestra la descripción detallada de los siguientes tipos:
- Clase : el bloque de construcción de C++ que conduce a la programación orientada a objetos es una clase . Es un tipo de datos definido por el usuario, que contiene sus propios miembros de datos y funciones de miembros, a los que se puede acceder y utilizar creando una instancia de esa clase. Una clase es como un modelo para un objeto.
Sintaxis :
Ejemplo:
// C++ program to demonstrate
// Class
#include <bits/stdc++.h>
using
namespace
std;
class
Geeks {
// Access specifier
public
:
// Data Members
string geekname;
// Member Functions()
void
printname()
{
cout <<
"Geekname is: "
<< geekname;
}
};
int
main()
{
// Declare an object of class geeks
Geeks obj1;
// accessing data member
obj1.geekname =
"GeeksForGeeks"
;
// accessing member function
obj1.printname();
return
0;
}
Producción:Geekname is: GeeksForGeeks
- Estructura : una estructura es un tipo de datos definido por el usuario en C/C++. Una estructura crea un tipo de datos que se puede usar para agrupar elementos de tipos posiblemente diferentes en un solo tipo.
Sintaxis:
struct address { char name[50]; char street[100]; char city[50]; char state[20]; int pin; };
Ejemplo:
// C++ program to demonstrate
// Structures in C++
#include <iostream>
using
namespace
std;
struct
Point {
int
x, y;
};
int
main()
{
// Create an array of structures
struct
Point arr[10];
// Access array members
arr[0].x = 10;
arr[0].y = 20;
cout << arr[0].x <<
", "
<< arr[0].y;
return
0;
}
Producción:10, 20
- Unión : Al igual que Estructuras , la unión es un tipo de datos definido por el usuario. En unión, todos los miembros comparten la misma ubicación de memoria. Por ejemplo, en el siguiente programa en C, tanto x como y comparten la misma ubicación. Si cambiamos x, podemos ver los cambios reflejados en y.
#include <iostream>
using
namespace
std;
// Declaration of union is same as the structures
union
test {
int
x, y;
};
int
main()
{
// A union variable t
union
test t;
// t.y also gets value 2
t.x = 2;
cout <<
"After making x = 2:"
<< endl
<<
"x = "
<< t.x
<<
", y = "
<< t.y
<< endl;
// t.x is also updated to 10
t.y = 10;
cout <<
"After making Y = 10:"
<< endl
<<
"x = "
<< t.x
<<
", y = "
<< t.y
<< endl;
return
0;
}
Producción:After making x = 2: x = 2, y = 2 After making Y = 10: x = 10, y = 10
- Enumeración : la enumeración (o enum) es un tipo de datos definido por el usuario en C. Se utiliza principalmente para asignar nombres a constantes integrales, los nombres hacen que un programa sea fácil de leer y mantener.
Sintaxis:
enum State {Working = 1, Failed = 0};
// Program to demonstrate working
// of enum in C++
#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;
}
Producción:2
- Typedef : C++ le permite definir explícitamente nuevos nombres de tipos de datos utilizando la palabra clave typedef. El uso de typedef en realidad no crea una nueva clase de datos, sino que define un nombre para un tipo existente. Esto puede aumentar la portabilidad (la capacidad de un programa para usarse en diferentes tipos de máquinas, es decir, mini, mainframe, micro, etc., sin muchos cambios en el código) de un programa, ya que solo se tendrían que cambiar las declaraciones typedef . El uso de typedef también puede ayudar en el código de autodocumentación al permitir nombres descriptivos para los tipos de datos estándar.
Sintaxis:
typedef type name;
donde tipo es cualquier tipo de datos de C++ y nombre es el nuevo nombre para este tipo de datos.
Esto define otro nombre para el tipo estándar de C++.Ejemplo:
// C++ program to demonstrate typedef
#include <iostream>
using
namespace
std;
// After this line BYTE can be used
// in place of unsigned char
typedef
unsigned
char
BYTE
;
int
main()
{
BYTE
b1, b2;
b1 =
'c'
;
cout <<
" "
<< b1;
return
0;
}
Producción:c