Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Autor: pekfos
Programowanie obiektowe, C++

Klasy i obiekty - Wprowadzenie do programowania obiektowego

[lekcja] 1. Omówienie klas i obiektów - Wprowadzenie do programowania obiektowego

Wprowadzenie

W tym dziale kursu dowiesz się, co to jest programowanie obiektowe i jak je stosować. Powinieneś mieć już podstawową wiedzę z zakresu programowania w języku C++.

Klasa

Klasa to, najprościej mówiąc, typ danych. Definicja klasy przypomina, poznaną już przez Ciebie, strukturę:
C/C++
class Klasa
{
};
Klasa, tak jak struktura, może zawierać dane. Klasa pozwala na ustawianie praw dostępu do składowych przy pomocy trzech słów kluczowych private, protected i public, zwanych specyfikatorami dostępu.

Specyfikator private

Specyfikator private (ang. prywatny) sprawia, że dostęp do składowej ma tylko ta klasa. Próba odwołania się do składowej prywatnej spoza klasy spowoduje błąd kompilacji. Jest to domyślny specyfikator.

Specyfikator protected

Specyfikator protected (ang. chroniony) jest podobny do private. Różnice pojawiają się przy dziedziczeniu (omówionym w następnych lekcjach).

Specyfikator public

Specyfikator public (ang. publiczny) oznacza, że do składowej każdy ma dostęp.

Prawa dostępu do składowej zależą od ostatniego napotkanego specyfikatora dostępu (idąc z góry na dół).
C/C++
class Klasa
{
    int prywatne1; //domyślnie private
   
public: //od teraz w dół publiczne
    int publiczne1;
    int publiczne2;
   
protected: //a od teraz w dół chronione, itd..
    int chronione1;
   
    int chronione2;
   
private:
    int prywatne2;
   
public: //specyfikatory mogą się powtarzać
    int publiczne3;
   
protected:
    int chronione3, chronione4;
};

Obiekt

Obiektem nazywamy egzemplarz klasy. Tworzymy go jak zmienną, ponieważ, w istocie, to jest zmienna.
C/C++
Klasa obiekt;
Do składowych odwołujemy się tak, jak do składowych struktury.
C/C++
int main()
{
    Klasa obiekt;
    obiekt.publiczne1 = 1; //Składowa publiczna = jest dostęp = wyrażenie jest poprawne
    obiekt.chronione1 = 1; //Składowa chroniona = brak dostępu = błąd kompilacji
    obiekt.prywatne1 = 1; //Składowa prywatna = brak dostępu = błąd kompilacji
}
Błędy kompilacji, o których mowa, wyglądają tak:
In function ‘int main()’:
error: ‘int Klasa::chronione1’ is protected
error: within this context
error: ‘int Klasa::prywatne1’ is private
error: within this context
Poprzedni dokument Następny dokument
Podstawy Metody