Jak zbudowana jest klasa w C++
Klasa w bardzo dużym uogólnieniu przypomina definicję struktury. Jej zapis wygląda następująco:
C/C++
class NazwaTwojejKlasy
{
//w tym miejscu piszemy definicje typów, zmienne i funkcje jakie mają należeć do klasy.
}; //tutaj średnik jest bardzo ważny!
{
//w tym miejscu piszemy definicje typów, zmienne i funkcje jakie mają należeć do klasy.
}; //tutaj średnik jest bardzo ważny!
Jak się korzysta z klasy
Klasy wykorzystuje się w praktyce tak samo jak struktury. Przykład:
C/C++
class TwojaKlasa
{
};
int main()
{
TwojaKlasa nazwaZmiennej;
return( 0 );
}
{
};
int main()
{
TwojaKlasa nazwaZmiennej;
return( 0 );
}
Prawa dostępu do klasy
Jeśli klasy deklaruje się tak samo jak struktury i jeśli wykorzystuje się tak samo jak struktury, możesz zacząć się zastanawiać czym tak naprawdę różni się klasa od struktury. Jeśli napiszemy następujący program:
C/C++
class TwojaKlasa
{
int abc;
};
int main()
{
TwojaKlasa nazwaZmiennej;
nazwaZmiennej.abc = 10;
return( 0 );
}
{
int abc;
};
int main()
{
TwojaKlasa nazwaZmiennej;
nazwaZmiennej.abc = 10;
return( 0 );
}
In function `int main()':
`int TwojaKlasa::abc' is private
within this context
Słowa kluczowe private, protected, public
C++ umożliwia łatwe modyfikowanie praw dostępu do wybranych zmiennych i funkcji klasy. Służą do tego trzy słowa kluczowe: private, protected i public.Słowo kluczowe private
Słowo kluczowe private oznacza dostęp do zmiennych i funkcji tylko z poziomu klasy. Nie są one widoczne poza klasą, więc użytkownik klasy nie będzie mógł uzyskać dostępu do zmiennej (lub funkcji) spoza klasy.Słowo kluczowe protected
Słowo kluczowe protected ma takie same własności co słowo kluczowe private. Różnice pojawiają się tylko wtedy, gdy przyjdzie nam dziedziczyć klasy. Jeśli będziemy dziedziczyli klasę A do klasy B to zmienne oznaczone jako private w klasie A będą niewidoczne dla klasy B. Jeśli zmienne (i funkcje) klasy A będą miały prawo dostępu protected to takie zmienne (i funkcje) będą widoczne dla klasy B.Słowo kluczowe public
Dostęp publiczny umożliwia uzyskiwanie dostępu do dowolnej zmiennej i funkcji z dowolnego miejsca w kodzie (jeśli oczywiście zachowana jest logika programowania w C++).Jak się zmienia prawa dostępu w praktyce
Ustawianie praw dostępu jest bardzo prostą czynnością. Najprościej będzie to pokazać na przykładzie.
C/C++
#include <string>
class TwojaKlasa
{
public:
double liczba; //prawo dostępu: publiczne
char tablica[ 20 ]; //prawo dostępu: publiczne
private:
int abc; //prawo dostępu: prytatne
char znak; //prawo dostępu: prytatne
std::string napis; //prawo dostępu: prytatne
};
int main()
{
TwojaKlasa nazwaZmiennej;
return( 0 );
}
class TwojaKlasa
{
public:
double liczba; //prawo dostępu: publiczne
char tablica[ 20 ]; //prawo dostępu: publiczne
private:
int abc; //prawo dostępu: prytatne
char znak; //prawo dostępu: prytatne
std::string napis; //prawo dostępu: prytatne
};
int main()
{
TwojaKlasa nazwaZmiennej;
return( 0 );
}
Brak komentarzy:
Prześlij komentarz