Posty

Wyświetlanie postów z czerwiec, 2017

Programowanie obiektowe w C++. Cz. 2 Atrybuty: Public i protected.

Cześć! Dzisiaj zajmiemy się tak jak jest wspomniane w tytule atrybutami public i protected klasy. Czym one są? Public- Coś publicznego, dostępnego dla klasy. Klasa udostępnia swoje dane każdemu kto chce. Protected - Klasa ma metody, lub zmienne częściowo chronione przed odczytem lub modyfikacją. Mogą odczytać tylko klasy dziedziczące. Przykład: class MyClass { public: void showValue(int value) { std::cout<<value<<'\n'; } }myClass;///Dzięki temu że jest średnik można definiować obiekt bezpośrednio po nawiasach int main() { myClass.showValue(10); } W przeciwieństwie do poprzedniej lekcji, wystarczyło dodać atrybut public, by zadziałało. Jak można pokazac atrybut protected w akcji? class MyClass { protected: void show() { std::cout<<"Hello! It's MyClass\n"; } }; class SecondClass:public MyClass { public: void showInBaseClass() { this->show();} }; int main() { SecondClass sec; sec.showInBas

Programowanie obiektowe w języku C++.Cz.1 Klasy oraz struktury

Cześć! Dzisiaj zajmiemy się programowaniem obiektowym. Rozszyfrujmy na samym początku znaczenie tego sformułowania. Programowanie obiektowe - Programujemy w sposób obiektowy. Czyli używając obiektów. Czym jest obiekt? Jest to reprezentacja szczegółowa klasy lub struktury. Zobaczmy na prosty przykład class MyClass ///Przyjęło się nazywać nazwy klas z dużej litery { };///Średnik na końcu jest związany z bezpośrednim tworzeniem obiektu klasy. Ale o tym później int main() { MyClass myClass;///Obiekt } Jak widzimy obiekt to reprezentacja klasy lub struktury(Zamiast class możemy wstawić struct. Zadziała w ten sam sposób). Wróćmy do klasy. Pojawia się pytanie: Po co mi klasa ? Do definiowania w jej wnętrzu metod(funkcji w klasie), oraz zamiennych. Dlaczego klasa lub struktura, a nie porozrzucane po całym programie ? Ta kwestia jest złożona. Pierwszym powodem dla którego warto stosować klasę jest porządek, ale to subiektywna kwestia. Najważniejszym jest to, że progr

Wskaźniki w C++ cz.2

Cześć! Dzisiaj zajmiemy się drugą część wskaźników i związaną z Nią alokacją pamięci. Wyobraźmy sobie, że mamy tablicę o rozmiarze 4. I chcielibyśmy mieć tablicę o rozmiarze 5. Co w pierwszej chwili przychodzi Nam do głowy ? Alokacja na nowo. To nie jest jednak najlepszy pomysł, gdyż zobaczmy poniższy kod: int *myTable = new int [4]; for(int i=0;i<4;i++) myTable[i]=i; for(int i=0;i<4;i++) std::cout<<myTable[i]<<" "; std::cout<<'\n'; myTable = new int [5];//Alokuje na nowo for(int i=0;i<4;i++) std::cout<<myTable[i]<<" "; std::cout<<'\n'; Powyższy kod daje Nam jasno do zrozumienia, że spowoduje to utracenie danych w tablicy. Co więc powinniśmy zrobić? Tutaj sprawa nie jest taka prosta. Możemy włożyć tablicę myTable to innej tablicy. I potem skopiować ją do tej pierwszej. Zobaczmy to w akcji: int *myTable = new int [4]; int * secondTable = new int [4]; for(int i=0;i<4;i++) myTable[i]=

Wskaźniki w C++ cz1

Cześć! Dzisiaj zajmiemy się rzeczą bardzo ważną i fundamentalną w rozwoju informatyki. Zajmiemy się wskaźnikami. Czym jest wskaźnik ? Wskaźnik to zmienna która, zawiera w sobie adres innej zmiennej. Pokażmy to na przykładzie: int * myPointer; int variable; myPointer = &variable; Co w tym momencie zrobiliśmy ? Przypisaliśmy do zmiennej myPointer adres zmiennej variable. Adres oznaczany jest &(ampersandem). Pojawia się teraz pytanie po co Nam adres ? Otóż do kilku ważnych rzeczy. Po pierwsze szybkość. Komputer wiedząc gdzie ma się udać zrobi coś szybciej, niż przeszukując bit po bicie. Po co jeszcze ? By  za-alokować dynamicznie pamięć. Brzmi groźnie. W istocie sprowadza się do tego, że jeśli chcemy mieć pamięć dynamiczną, czyli taką którą możemy usunąć, gdy nie jest Nam potrzebna lub coś do Niej dodać(co jest kłopotliwe). Dlaczego potrzebuje do tego wskaźników ? Wskaźnik zawiera adres i komputer dzięki temu adresowi wie gdzie będzie zawierać się dynamiczna tabli

Tablice w języku C++

Cześć! Dzisiaj zajmiemy się tablicami. Tablica to uporządkowany, znajdujący się w pamięci obok siebie, zestaw danych. Zestawem danych może być cokolwiek. Może to być liczba, string, lub inny typ danych. To co odróżnia tablicę od innych struktur, to jej uporządkowanie w pamięci obok siebie. Pamięć to zestaw rekordów, z których każdy ma swój adres. Czym jest adres ? Adres to (zazwyczaj) liczba, która jest unikalna dla całej pamięci i wskazuje, że chodzi nam o ten konkretny adres. Dla przykładu: Adres:  1      2             3 Dane:   35    79    "Ala ma kota" To jest właśnie takie przyporządkowanie do adresu, odpowiadającym im danych. Jak to się ma do tablic. O ile w przypadku innych danych, lub zmiennych, mogą(zwykle nie są, w pojedyńczym programie) być one porozrzucane po całej pamięci. Tak w przypadku tablic, są one obok siebie. Teraz: Jaki jest cel, żeby stały one obok siebie ? Jest wiele. Zaczynijmy od przykładu z życia.Wyobraźmy sobie, że mamy pokój wypełniony książ

Klasa String w C++. Obszerna analiza

Cześć! Jak przygoda z programowaniem ? Mam nadzieję, że całkiem ciekawie. Dzisiaj zajmiemy się tematem dla jednych ciekawym, a dla innych jeszcze bardziej ciekawym. Zainteresowany ? Zapraszam. String, co to takiego ? Klasa string jest połączeniem tablicą charów. Czym jest "char"? To pojedyńczy znak, który wewnątrz siebie jest liczbą(może być zarówno dodatnią, jak i ujemną), która reprezentuje znaki w standardzie UTF8. Tablica String jest tablicą ciągłą, to oznacza że znajduje się nieprzerwanie w pamięci od początku, aż do końca. Element pierwszy ma indeks zerowy. Ostatni indeks ma zawsze znacznik '\0'. Dlaczego ? String jest tablicą ciągłą i kompilator musi wiedzieć gdzie się kończy. Jak wygląda deklaracja string w c++? std::string myString; W ten sposób. Napiszmy więc związany z Nim najprostszy kod. #include <iostream> #include <string>///Library for String int main() { std::string myString = "Ala ma kota, ale nie Filemona";