Tipos de datos, structs y unions
- El primer programa en C++:
#include <iostream>
using namespace std;
int main()
{
cout << "¡Hola, mundo!" << endl;
return 0;
}
- Los tipos de datos básicos (
int, float, double char ...
), y punteros
int x = 5;
int *ptrx = &x;
*ptrx = 56;
cout << x << endl; // Imprime 56
- Las estructuras:
#include <iostream>
using namespace std;
struct Complejo {
double real;
double imaginaria;
};
int main()
{
Complejo c1;
c1.real = 1;
c1.imaginaria = 2;
cout << c1.real << ',' << c1.imaginaria << 'i' << endl;
return 0;
}
- y las uniones, que son esas estructuras extrañas cuyos miembros empiezan todos en la misma posición:
#include <iostream>
using namespace std;
union Mezcla {
int x;
char byteMenosSignificativo;
};
int main()
{
Mezcla e1;
e1.x = 1;
cout << "El byte menos significativo es: " << e1.byteMenosSignificativo << endl;
return 0;
}
El
uso que se le suele dar a las uniones es el mismo que en Pascal se le
da a las estructuras variantes, es decir, estructuras que pueden
contener diferentes subestructuras según alguna condición
que se dé en la misma.
struct Persona {
int edad;
enum TipoTrabajo { Autonomo, CuentaAjena };
TipoTrabajo tipoTrabajo;
union InfoTrabajo {
int numHorasTrabajadas;
struct Autonomo {
int numHorasTrabajadas;
int numHorasDeBaja;
};
};
};
En el ejemplo, según el valor del campo tipoTrabajo,
se accederá a InfoTrabajo.numHorasTrabajadas o a
InfoTrabajo.Autonomo.numHorasTrabajadas .. . etc. La mayor ventaja es
que la información dentro de la unión para trabajadores
por cuenta ajena comparte memoria con la información para
trabajadores autónomos.