Strona główna » Liceum » Przedmioty ścisłe » Informatyka


C++ - wykład 8



Poprzednia praca: Wirusy komputerowe (6)
Następna praca: C++ - wykład 7



Treść:
Wykład 8 - 3 godz.
Zakres tematyczny:
1. Klasy
Wprowadzenie
Na dzisiejszym wykładzie wprowadzimy pojęcie klas. Klasy, które przechowują dane i funkcje wprowadzają do programu typy zdefiniowane przez użytkownika (user-defined types). Typy zdefiniowane przez użytkownika, w tradycyjnym języku programowania, przechowują dane, które zebrane razem opisują atrybuty i stan obiektu. Typ klasowy w języku C++ pozwala opisać atrybuty i stan obiektu, ale także pozwala na zdefiniowanie zachowania obiektu.
Odpowiednikiem klasy w tradycyjnym programowaniu jest typ zmiennej, a obiekt danej klasy jest odpowiednikiem zmiennej tego typu.
Typy klasowe definiowane są przy pomocy słów kluczowych class, struct, union. Zmienne i funkcje zdefiniowane wewnątrz klasy nazywane są składowymi klasy. Podczas definiowania klasy w praktyce, składnikami klasy (chociaż opcjonalnymi) są:
- dane definiujące stan i atrybut y obiektu typu klasa
- jedna lub więcej funkcji nazwanej konstruktorem, która tworzy obiekt danej klasy
- jedna lub więcej funkcji nazwanej destruktorem, która wywoływana jest wtedy, gdy
obiekt danej klasy ma być likwidowany.
- jedna lub więcej funkcji składowych opisujących zachowanie się obiektu. Wykonują one operacje charakterystyczne dla obiektu danej klasy.
Definiowanie typów klasowych
Do typów klasowych język C++ zalicza: struktury, klasy i unie. Jak definiujemy struktury i unie w pojęciu klasycznym mówiliśmy na wcześniejszych wykładach, teraz podamy prosty przykład deklaracji klasy.
Przypuśćmy, że piszecie państwo program, który często operuje na datach. Można w tym celu stworzyć nowy typ reprezentujący datę, używając następującej struktury:
struct Date
{
int month;
int day;
int year;
};
Składowymi tej struktury są zmienne: month, day, year.
Aby przechować konkretną datę można ustawić składowe struktury np.:
stryct Date my_date;
my_date.month = 1;
my_date.year = 1990;
my_date.day = 12;
Aby wydrukować datę nie można przesłać jej bezpośrednio do funkcji printf . Programista musi albo drukować każde elementy struktury osobno, albo napisać własną funkcje drukującą strukturę w całości jak np.:
void display_date(struct date *dt)
{
static char *name[] = {"zero","Jan","Feb",Mar","Apr","May","Jun","Jul","Aug","Sep",
"Oct","Nov","Dec"
};
printf("%s %d %d",name[dt->month],dt->day, dt->year);
}
Aby wykonać inne operacje na datach, takie jak np. porównanie, należy porównywać składowe struktury oddzielnie lub podobnie jak to było w przypadku drukowania napisać funkcję., która przyjmuje jako parametr strukturę datę i wykonuje porównanie.
Kiedy definiujemy strukturę w C definiujemy nowy typ zmiennej. Kiedy piszemy funkcje operujące na tej strukturze, definiujemy operacje wykonywane na tym typie zmiennych. Taka technika dla implementacji daty ma złe strony:
1. Nie daje gwarancji, że struktura Date zawiera prawidłowe dane. Każda funkcja ślepo używająca takich danych np.: 56.45.1000 będzie generowała nonsensowne efekty.
2. Załóżmy, że w pewnym momencie chodzi nam o ograniczenie pamięci przeznaczonej na zapisanie daty np.: można zdecydować, że obie dane: day i month mogą być przechowywane na zmiennej single lub przy użyciu pola bitowego lub przez zapisanie tylko numeru dnia w roku (jako liczba od 1 do 356). Aby dokonać tych zmian każdy program, który wykorzystuje typ Date musi być przepisany. Każde wyrażenie, mające dostęp do zmienionych składowych musi być przepisane.
Można uniknąć tych problemów , jednak nie bez problemów. Np., zamiast ustawiać składowe struktury można napisać funkcję która będzie jednocześnie testowała poprawność danych. Niestety niewielu programistów ma ten nawyk we krwi, w rezultacie programy tak napisane (przy bezpośrednim dostępie do składowych struktury) są trudne do poprawiania. Na szczęście, język C/C++ dostarcza nam takich narzędzi, które ułatwiają prace na typach zmiennych zdefiniowanych przez użytkownika.
W C++ definiujemy jak już wspomnieliśmy zarówno dane jak i operacje jednocześnie poprzez deklarowanie klas. Klasa zawiera dane i funkcje na nich operujące.
Deklaracja klasy wygląda podobnie do deklaracji struktury, z wyjątkiem tego, że oprócz danych zawiera jeszcze funkcje. Podam teraz przykład klasy, która jest wersją klasowa struktury Date:
#include
// --- klasa Date
class Date
{
public:
Date(int mn,int dy, int yr);//Konstruktor
void display();// Funkcja do drukowania daty
~Date();//Destruktor
private:
int month, day, year;// prywatne dane składowe
};
Jak widać, rzeczywiście deklaracja klasy jest połączeniem deklaracji struktury i zestawu funkcji. Zawiera ona:
1. zmienne przechowujące datę: month, day, year
2. prototypy funkcji z którymi klasa może być użyta
Definicje funkcji umieszcza się po deklaracji klasy. Poniżej przedstawimy definicję funkcji składowych w/w klasy:
inline int max(int a, int b)
{
if(a>b) return a;
return b;
}
inline int min(int a, int b)
{
if(a...


Widzisz tylko część pracy, aby zobaczyć całość, musisz się zalogować.

Nie masz jeszcze u Nas konta? Na co czekasz? ZAREJESTRUJ SIĘ JUŻ TERAZ

Zapomniałeś hasła? Skorzystaj z formularza przypominającego hasło.


Czytano: 1840 , autor: ew.la , Ocena: 44.78

      Blip Śledzik Twitter Facebook Buzz Wykop

Inne podobne teksty do tytułu C++ - wykład 8

C++ - wykład 7
C++ - wykład 6
C++ - wykład 3
C++ - wykład 1
C++ - wykład 2/4
C++ - wykład 4/4
C++ - wykład 3/4
C++ - wykład 4/4 cd.
Tablice w jezyku C++


Losowe teksty z tej samej kategorii

Światłowody: Zasada działania i zastosowanie
Kamienie milowe w rozwoju technologii informacyjnej
Wirusy komputerowe (2)
Zasady wydawania poleceń systemu operacyjnego DOS.
Komputerowe sieci lokalne
Przykładowy projekt pracowni komputerowej -bez rysunków.
Arytmetyka cyfrowa
Poczatek maszyn ktore zostaly nazwane komputerami
Komputer i powiązania z informatyką.
Drukarki (1)


Wasze komentarze

Brak komentarzy dla danej pracy.




Zmień kategorię:

Zobacz także:

Przedmioty ścisłe
Chemia Chemia
Fizyka Fizyka
Informatyka Informatyka
Matematyka Matematyka

A A A A - zmień wielkość czcionki


Oceń pracę:

Ocena pracy wynosi 44.78.

Informacje o pracy:

⇒Dodano: 2008-02-11 21:04:13
⇒Czytano: 1840
Autor: ew.la


Dodatkowe opcje:

Drukuj stronę
ZGŁOŚ NARUSZENIE
Wyślij znajomemu
Dodaj do ULUBIONYCH



Dodaj komentarz:

Tytuł:

Treść: