W ramach utrudnienia, definicję klasy umieścimy w osobnym pliku zatytułowanym
temp.h.
Klasa to posiada pola F i C typu double, ogólnodostępne, które służą do definiowania wielkości wejściowej.
Metoda ShowTemp() służy do wyświetlania przeliczonej temperatury. Dodatkowo posiada ona funkcje formatowania tekstu.
W pliku
temp.h wklejamy następującą treść:
#ifndef TEMP_H #define TEMP_H
#include <math.h>
class Temp { private: int tryb; double convert_C2F(); double convert_F2C();
public: Temp(); float C, F; String ShowTemp(); }; Temp::Temp() { C=0; F=0; tryb = -1; }
double Temp::convert_C2F() { //tryb = 1; return ((double)9/5)*C+32; }
double Temp::convert_F2C() { //tryb = 0; return ((double)5/9)*(F-32); }
String Temp::ShowTemp() { if(C != 0) tryb = 1; if(F != 0) tryb = 0;
if(tryb == 1) { String tmp = FloatToStrF(convert_C2F(), ffFixed, 10, 3); return tmp + " ['F]"; } if(tryb == 0) { String tmp = FloatToStrF(convert_F2C(), ffFixed, 10, 3); return tmp + " ['C]"; } }
#endif
|
Klasa
Temp zawiera trzy funkcje, dwie z nich o dostępie prywatnym służą do właściwej konwersj iednostek
(
convert_C2F,
convert_F2C), natomiast funkcja
ShowTemp sprawdza w którą stronę ma dokonać konwersji oraz obcina ciąg wyjściowy do 3 miejsc po przecinku.
Plik
temp.h umieszczamy do katalogu z programem, w pliku .cpp dołączamy nagłówek:
#include "temp.h"
PrzykładPrzeliczenie temperatury Celcjusza na stopnie Fahrenheita.
Poniższ kod możemy umieścić np. w zdarzeniu
OnClick.
Temp t; t.C = 30; Label1->Caption = t.ShowTemp();
|
Spójrzmy na 1 linijkę tego kodu. Tworzy ona instancję klasy Temp, a więc nowy obiekt.
Linia 2 odpowiada za wpisanie wartości temperatury w stopniach Celcjusza.
Końcowy efekt działania programu to wypisanie 86,000 ['F].
PrzykładKonwersja ze stopni Fahrenheita na stopnie Celcjusza.
Temp t; t.F = 80; Label1->Caption = t.ShowTemp();
|
W efekcie otrzymamy 26,667 ['C].
Przypisanie zmiennych do pól klasy może odbywać się na dwa sposoby.
W powyższym przykładzie zmienne F oraz C są typu
klasowego, jako że utworzenie nowej zmiennej odbyło się za pomocą wskaĽnika
Temp t. Jest to sposób dostępu bezpośredniego.
Dlatego dostęp do tych zmiennych odbywa się za pomocą operatora kropki (.).
Jeśli natomiast utworzymy zmienną za pomocą wskaĽnika na obiekt, to przypisywanie wartości pól klasy odbywa się za pomocą operatora strzałki (->). Jest to sposób dostępu pośredniego.
W ramach przypomnienia, zmienne typu wskaĽnikowego tworzone są za pomocą operatora
new, natomiast ich usuwanie odbywa się za pomocą operatora
delete. Często początkujący programiści zaniedbują gospodarkę zasobami komputera i często zapominają o zwolnieniu zasobów przydzielanych obiektom tworzonym dynamicznie.