Jeśli dobrze zrozumiałem:
#include <iostream>
using namespace std;
struct Struktura
{
float f_zmienna;
int i_zmienna;
};
void wypisz( Struktura struk )
{
cout << "f_zmianna: " << struk.f_zmienna << endl;
cout << "i_zmienna: " << struk.i_zmienna << endl;
}
int main()
{
Struktura s1;
s1.f_zmienna = 2.5;
s1.i_zmienna = 20;
wypisz( s1 );
return 0;
}
Funkcja wypisz stworzy kopię obiektu. Zwykle jest to niepożądane, więc wysyła się oryginał. W tym celu należy zdefiniować funkcję następująco:
void wypisz( Struktura & struk )
Jeśli chcesz przyjmować tylko liczby int i zastanawiasz się jak to wysłać funkcji. Ano tak :)
#include <iostream>
using namespace std;
struct Struktura
{
float f_zmienna;
int i_zmienna;
};
void wypisz_int( int jakis_int )
{
cout << "jakis_int = " << jakis_int << endl;
}
int main()
{
Struktura s1 = { 2.5, 20 }; // tym razem inicjalizacja
wypisz_int( s1.i_zmienna );
return 0;
}
Jeśli szukasz sposobu, aby funkcja przyjmowała tylko i wyłącznie pole z danej struktury, to skorzystaj ze sposobu pierwszego + użycie referencji. Będziesz mieć pewność, że funkcja będzie działała tylko na obiektach (zmiennych) danej struktury.
W przypadku drugim można tam wysłać wszystko co jest int.