Wstęp do programowania obiektowego w C++
Modyfikator dostępu
Klasa Dlugopis
obecnie nic nie robi, pora więc dodać do niej jakieś elementy. Długopis używamy do pisania, więc przydała by nam się metoda pisz()
, która będzie odpowiedzialna za wyświetlanie podanego jako argument tekstu na ekranie.
class Dlugopis { void pisz(string tekst) { cout << tekst; } };
Kod który stworzyliśmy wyżej zawiera pewien mały błąd. Mianowicie kiedy będziemy chcieli odwołać się do metody pisz()
klasy Dlugopis
kompilator zaprotestuje wyświetlając komunikat o błędzie. Stanie się tak dlatego, że nie użyliśmy tak zwanego modyfikatora dostępu czyli nie określiliśmy czy metoda ta jest publiczna, prywatna czy może chroniona:
Modyfikator dostępu | Opis |
public | (Publiczny) – Dostęp do metod, pól itd. wewnątrz danej klasy oraz z poza niej. |
private | (Prywatny) – Dostęp do metod, pól itd. tylko z poziomu klasy w której dany element został zdefiniowany (wyjątek stanowi klasa zaprzyjaźniona – ang. friend ). |
protected | (Chroniony) – Działa tak samo jak private z tym wyjątkiem, że metody, pola itd. są dostępne z poziomu klasy pochodnej (przy dziedziczeniu). |
Na razie rozpoczynamy zabawę z programowaniem obiektowym, więc będziemy używać tylko modyfikatora public
. Aby skorzystać z modyfikatorów obiektowych należy w klasie napisać public:
. Ważne jest to, iż taki zapis odnosi się do wszystkich elementów poniżej:
class NazwaKlasy { public: //pola, metody itd. publiczne private: //pola, metody itd. prywatne protected: //pola, metody itd. chronione };
Wracając do naszego przykładu to kod będzie wyglądał tak:
#include <iostream> using namespace std; class Dlugopis { public: void pisz(string tekst) { cout << tekst; } }; int main() { Dlugopis dlugopis1; return 0; }
Przyszła teraz pora, żeby uruchomić naszą metodę pisz()
klasy Dlugopis
. Aby się do niej dostać najpierw musimy stworzyć odpowiedni obiekt, co już zresztą zrobiliśmy. Do metod odwołujemy się po znaku .
(kropka). Ogólny kod:
nazwaObiektu.nazwaMetody(); nazwaObiektu.nazwaMetody(argumenty);
W naszym przykładzie będzie wyglądało to tak:
dlugopis1.pisz("Napisałeś ten tekst...");
Cały kod:
#include <iostream> using namespace std; class Dlugopis { public: void pisz(string tekst) { cout << tekst; } }; int main() { Dlugopis dlugopis1; dlugopis1.pisz("Napisałeś ten tekst..."); return 0; }
Teraz możemy uruchomić powyższy kod, a w konsoli zobaczymy taki napis:
Napisałeś ten tekst...
Gratulacje! Właśnie napisałeś swój pierwszy obiektowy program.