Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Przekazanie struktury do funkcji

Ostatnio zmodyfikowano 2020-12-27 13:40
Autor Wiadomość
JacekLeszcz
Temat założony przez niniejszego użytkownika
Przekazanie struktury do funkcji
» 2020-12-27 01:56:22
Dobry wieczór,
Próbuję rozbudować mój bardzo stary program napisany w Borland Builder 6.0 (tak, wiem, że antyk).
Mój problem polega na tym, że nie wiem czy poprawnie zdefiniowałem funkcję aby móc przekazać w niej dane za pomocą struktur. Struktura opisuje współrzędne w przestrzeni trójwymiarowej. Chcę przekazać współrzędne dwóch punktów Lab1 i Lab2 oraz kilka parametrów (kL, kC i kH). Zrobiłem to następujaco:

W pliku h
C/C++
//w sekcji private klasy TForm1 (class TForm1 : public TForm)
struct CIE_Lab;
long double delta_E2000( CIE_Lab & Lab1, CIE_Lab & Lab2, long double kL, long double kC, long double kH );
W pliku cpp
C/C++
//definicja struktury
struct TForm1::CIE_Lab
{ long double L;
   
long double a;
   
long double b;
};

//definicja funkcji
long double TForm1::delta_E2000( CIE_Lab & Lab1, CIE_Lab & Lab2, long double kL,
long double kC, long double kH )
{ long double DE2000 = 0.0;
   
//tutaj różne obliczenia nadające nowa wartość zmiennej DE2000
   
return DE2000;
}
wywołanie funkcji w programie:
C/C++
long double wartosc_DE2000 = 0.0;
wartosc_DE2000 = delta_E2000( Lab1, Lab2, kL, kC, kH );
Kompilator nie zgłasza błędów, ale nie czuję się pewnie w temacie i proszę o opinię.
P-177882
pekfos
» 2020-12-27 13:40:27
Jak działa, to jest dobrze. W razie wątpliwości, używaj const T&. Jeśli nie chcesz modyfikować przekazanych wartości, to lepiej używać referencji na stałą, bo wtedy możesz przekazać do funkcji także stałe.
P-177883
« 1 »
  Strona 1 z 1