63. C++ || Estructuras parámetros de funciones



Siempre debemos tener presente que una estructura es un nuevo tipo de dato definido por el usuario. Entonces se convierte en otro tipo de dato.

C++ nos permite pasar datos bien sea por valor o por referencia. Lo mismo pasa con las estructuras, y no es coincidencia que se haga de la misma manera que hemos hecho siempre. Por ejemplo:

#include <iostream>
using namespace std;

struct Persona{
 char nombre[20],apellido[20];
 int edad;
 float salario;
};

void estructuraValor(Persona);
void estructuraReferencia(Persona&);
void mostrarEstructura(Persona);

int main(){
 Persona humano = { "Steven","Rojas",19,1000 };
 estructuraValor(humano);
 mostrarEstructura(humano);
 estructuraReferencia(humano);
 mostrarEstructura(humano);
 return 0;
}

void estructuraValor(Persona humano){
 cout << "Nombre: "; 
 cin.getline(humano.nombre,20);
 cout << "Apellido: "; 
 cin.getline(humano.apellido,20);
 cout << "Edad: "; cin >> humano.edad;
 cout << "Salario: "; cin >> humano.salario;
}

void estructuraReferencia(Persona& humano){
 cin.ignore();
 cout << "Nombre: "; 
 cin.getline(humano.nombre,20);
 cout << "Apellido: "; 
 cin.getline(humano.apellido,20);
 cout << "Edad: "; cin >> humano.edad;
 cout << "Salario: "; cin >> humano.salario;
}

void mostrarEstructura(Persona humano){
 cout << "Mi nombre es: " << humano.nombre;
 cout << "\nMi apellido es: " << humano.apellido;
 cout << "\nEdad: " << humano.edad;
 cout << "\nSalario: " << humano.salario;
 cout << endl;
}

Noten que ocurre lo mismo que hubiese sucedido con cualquier otro tipo de dato estándar C++, lo que se pasó por valor no se modificó, y lo que se pasó por referencia sí lo hizo. De esta manera, pasamos las estructuras como parámetros como siempre lo hemos hecho.

No hay comentarios