Informacje o nowych artykułach oraz akcjach edukacyjnych prosto na Twojej skrzynce e-mail!

Wstęp do programowania obiektowego w C++

Pole

Nikt jednak nie zawracał by sobie głowy takim sposobem pisania oprogramowania gdyby możliwości klas były tak prymitywne jak powyższy przykład. Zapomnieliśmy przecież o tym, że nasz długopis może mieć wysunięty bądź wsunięty wkład. Oczywiste jest to, że jeżeli wkład jest wsunięty to nie możemy nic napisać. Rozbudujmy więc nasz program o kolejną funkcję.

Aby wiedzieć czy wkład jest wysunięty czy nie musimy tą informację gdzieś zapisać. Do tego celu wykorzystamy pole czyli innymi słowy zmienną:

bool czyWysuniety = false;

Klasa Dlugopis:

class Dlugopis {
    
public:
    bool czyWysuniety = false; //zakładamy, że wkład jest wsunięty (pesymistyczny przypadek)
    
    void pisz(string tekst) {
        cout << tekst;
    }
    
};

Jak widać, nowe pole dodałem po słowie kluczowym public ponieważ ono też musi być publiczne gdyż jego wartość będziemy modyfikować z poziomu funkcji main (czyli poza klasą). Od razu również przypisałem wartość false zakładając pesymistyczny przypadek. Należy jednak pamiętać iż wartości w klasie inicjalizujemy za pomocą konstruktora o czym będzie w dalszej części tego artykułu.

Następnym krokiem będzie zmodyfikowanie metody pisz(), tak aby zablokować możliwość „pisania” w momencie w którym wkład długopisu jest wsunięty. Do tego celu użyjemy zwykłą instrukcję warunkową IF:

void pisz(string tekst) {
     if(czyWysuniety)
          cout << tekst;
}

Cała klasa:

class Dlugopis {
    
public:
    bool czyWysuniety = false;
    
    void pisz(string tekst) {
        if(czyWysuniety)
            cout << tekst;
    }
    
};

No i pozostało przejść do maina gdzie ustawiamy po prostu wartości pola czyWysuniety. Robi to się analogicznie jak odwoływanie do metod:

Ogólny kod:

nazwaObiektu.nazwaPola = wartosc;

W naszym programie:

dlugopis1.czyWysuniety = true; //wysuwamy wkład

Cały kod:

#include <iostream>

using namespace std;

class Dlugopis {
    
public:
    bool czyWysuniety = false;
    
    void pisz(string tekst) {
        if(czyWysuniety)
            cout << tekst;
    }
    
};

int main() {
    
    Dlugopis dlugopis1;
    
    dlugopis1.pisz("Napisałeś ten tekst..."); //to nie zostanie napisane
    
    dlugopis1.czyWysuniety = true;
    
    dlugopis1.pisz("Wkład wysunięty?"); //to już zostanie napisane, bo wkład jest wysunięty
    
    return 0;
}

Jak widać nasz program powoli zaczyna mieć ręce i nogi. Doskonale widać na tym przykładzie jak prosto w mainie dzięki klasą można modyfikować różne „stany” na przykład określając w którym momencie funkcja pisz() ma „pisać”.

Strony: 1 2 3 4

Spodobało się?

Jeśli tak, to zarejestruj się do newslettera aby otrzymywać informacje nowych artykułach oraz akcjach edukacyjnych. Gwarantuję 100% satysfakcji i żadnego spamowania!

, , , , , , , ,

Dodaj komentarz

Odpowiedz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Pin It on Pinterest