formación.H
- 3579
- 433
- Claudia Baca
Este pequeño programa de ejemplo de C ++ demuestra un uso de plantillas dentro de C++. En este ejemplo, "matriz de clase de plantilla" puede instanciar cualquier tipo de matrices con un constructor único y una sola función de miembro de SetArray.
Tal comportamiento también se puede hacer sobrecargando una función de constructor y miembro de SetArray. Sin embargo, en ese caso, un programador necesitaría escribir una declaración de función de miembro y definición para cada tipo de matriz por separado.
Este programa de ejemplo instancia tres tipos de matriz diferentes int, float y char con un solo constructor una función miembro con el uso de la plantilla typename t.
formación.H
#IFNDEF Array_H_
#Define Array_H_
#incluir
usando std :: cout;
usando std :: endl;
#incluir
usando std :: setw;
#incluir
// Definir una matriz de CLAS del tipo T
// El tipo aún no es conocido y
// ser definido por instanciación
// del objeto de la matriz de clases desde main
plantilla< typename T > Matriz de clases
privado:
tamaño int;
T *myArray;
público:
// Constructor con tamaño predefinido del usuario
Array (int s)
tamaño = s;
myArray = new t [size];
// función de miembro de la matriz de calss para establecer el elemento de myArray
// con valores de tipo T
void setArray (int elem, t val)
myArray [elem] = val;
// para el bucle para mostrar todos los elementos de una matriz
vacío getArray ()
para (int j = 0; j < size; j++ )
// typeId recuperará un tipo para cada valor
cout << setw( 7 ) << j << setw( 13 ) << myarray[ j ]
<< " type: " << typeid(myarray[ j ]).name() << endl;
cout << "-----------------------------" << endl;
;
#terminara si
principal.CPP
#Include "Array.H "
int main ()
// Instanciar int_array objeto de la matriz de clases con el tamaño 2
formación< int > int_array (2);
// establecer el valor en un primer elemento
// Llamar a la función de miembro de la clase de matriz para establecer elementos de matriz
int_array.SetArray (0,3);
// establecer el valor en un segundo elemento
// Nota: Cualquier intento de establecer Float en una matriz int se traducirá a valor int
int_array.SetArray (1,3.4);
// Llamar a la función miembro de la clase de matriz para mostrar elementos de matriz
int_array.getArray ();
// Instanciar el objeto Float_Array de la matriz de clases con el tamaño 3
formación< float > float_array (3);
// establecer el valor en un primer elemento
// Llamar a la función de miembro de la clase de matriz para establecer elementos de matriz
float_array.SetArray (0,3.4);
// establecer el valor en un segundo elemento
float_array.SetArray (1,2.8);
// Llamar a la función miembro de la clase de matriz para mostrar elementos de matriz
float_array.getArray ();
// Instanciar el objeto float_array de la matriz de clases con el tamaño 5
formación< char > char_array (5);
// establecer el valor en un primer elemento
// Llamar a la función de miembro de la clase de matriz para establecer elementos de matriz
char_array.SetArray (0, 'H');
// establecer el valor en otros elementos de matriz
char_array.setArray (1, 'e');
char_array.SetArray (2, 'l');
char_array.SetArray (3, 'l');
char_array.SetArray (4, 'O');
char_array.getArray ();
regresar 0;
Compilar
G ++ principal.cpp -o myArray
Producción
ps ./MyArray
0 3 Tipo: i
1 3 Tipo: I
-----------------------------
0 3.4 Tipo: F
1 2.8 Tipo: F
2 0 Tipo: F
-----------------------------
0 H Tipo: C
1 E Tipo: C
2 L Tipo: C
3 L Tipo: C
4 o Tipo: C
-----------------------------
Tutoriales de Linux relacionados:
- Cosas para instalar en Ubuntu 20.04
- Bucles anidados en guiones Bash
- Una introducción a la automatización, herramientas y técnicas de Linux
- Mastering Bash Script Loops
- Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
- Tutorial de depuración de GDB para principiantes
- Cómo construir una aplicación Tkinter utilizando un objeto orientado ..
- Ubuntu 20.04 trucos y cosas que quizás no sepas
- Cómo trabajar con la API REST de WooCommerce con Python
- Cosas para instalar en Ubuntu 22.04
- « Configuración del entorno de desarrollo de Python VirtualEnv en Debian Linux
- Aprenda los conceptos básicos del shell Zsh »