C_cwiczenia_zaawansowane_czcpp.pdf
(
427 KB
)
Pobierz
IDZ DO
PRZYK£ADOWY ROZDZIA£
SPIS TRE CI
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
C++. Æwiczenia
zaawansowane
Autor: Andrzej Stasiewicz
ISBN: 83-7361-766-3
Format: B5, stron: 120
TWÓJ KOSZYK
DODAJ DO KOSZYKA
„C++. Æwiczenia zaawansowane” to kontynuacja ksi¹¿ki „C++. Æwiczenia praktyczne”
przeznaczona dla tych, którzy chc¹ pog³êbiaæ swoj¹ wiedzê o najpopularniejszym
obecnie jêzyku programowania. Przedstawia kolejne, niezwykle istotne zagadnienia
zwi¹zane z programowaniem w C++, mianowicie zasady programowania obiektowego.
Przeczytasz o klasach, metodach i szablonach oraz poznasz w praktyce metody
stosowania tych mechanizmów we w³asnych programach. Nauczysz siê technik
stosowania gotowych struktur danych, takich jak dynamiczna tablica, kolejka,
lista oraz stos.
• Instalacja rodowiska programistycznego
• Operacje zapisu i odczytu plików
• Klasy — definiowanie i stosowanie
• Konstruktorzy i destruktor klas
• Hierarchia klas i dziedziczenie
• Obs³uga wyj¹tków
• Stosowanie szablonów
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWO CIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Spis treści
Wprowadzenie......................................................................................................................................................... 5
Rozdział 1.
Piszesz pierwsze programy.............................................................................................................................. 9
Instalacja środowiska programistycznego .......................................................................... 9
Funkcja main() i ogólny szkic programu .......................................................................... 11
Słowo kluczowe namespace, czyli przestrzenie nazw ...................................................... 14
Podsumowanie.................................................................................................................. 16
Operacje na plikach............................................................................................................................................17
Otwieranie plików do zapisu i odczytu............................................................................. 17
Modyfikowanie standardowych operacji wejścia i wyjścia.............................................. 20
Podsumowanie.................................................................................................................. 23
Klasy, czyli Twoje własne typy danych....................................................................................................25
Deklarowanie i definiowanie klasy................................................................................... 25
Funkcje zaprzyjaźnione z klasami .................................................................................... 28
Statyczne składniki klasy.................................................................................................. 30
Funkcje statyczne klasy .................................................................................................... 32
Pola bitowe w klasach ...................................................................................................... 33
Słowo kluczowe this......................................................................................................... 34
Podsumowanie.................................................................................................................. 35
Konstruktory i destruktor ............................................................................................................................... 37
Konstruktor bezargumentowy, zwany domyślnym........................................................... 37
Konstruktory merytoryczne .............................................................................................. 38
Lista inicjalizacyjna konstruktora..................................................................................... 39
Konstruktor kopiujący ...................................................................................................... 40
Konstruktory konwertujące .............................................................................................. 42
Konstruktor a składniki stałe klasy ................................................................................... 42
Destruktor ......................................................................................................................... 43
Gdy w klasie brakuje konstruktora… ............................................................................... 44
Podsumowanie.................................................................................................................. 46
Przecią anie operatorów ................................................................................................................................ 47
Operatory zadeklarowane w klasie ................................................................................... 47
Operator przypisania = ..................................................................................................... 50
Operatory zadeklarowane poza klasą ............................................................................... 52
Operator wyprowadzania danych <<................................................................................ 53
Podsumowanie.................................................................................................................. 54
Rozdział 2.
Rozdział 3.
Rozdział 4.
Rozdział 5.
4
C++. Ćwiczenia zaawansowane
Rozdział 6.
Konwersje, czyli przekształcanie danych jednych typów w inne........................................... 55
Operator konwersji ........................................................................................................... 55
Niejawne konwersje za pomocą operatora konwersji....................................................... 57
Jednoargumentowe konstruktory konwersji ..................................................................... 58
Niejawne konwersje za pomocą konstruktora .................................................................. 58
Konstruktor jednoargumentowy explicit .......................................................................... 59
Operator static_cast .......................................................................................................... 60
Operator const_cast .......................................................................................................... 61
Operator dynamic_cast ..................................................................................................... 62
Operator reinterpret_cast .................................................................................................. 63
Podsumowanie.................................................................................................................. 63
Rozdział 7.
Dziedziczenie, czyli hierarchie klas......................................................................................................... 65
Dziedziczenie po klasie a zawieranie klasy ...................................................................... 65
Rodzaje dziedziczenia ...................................................................................................... 67
Konstruktory klasy pochodnej.......................................................................................... 70
Konstruktor kopiujący klasy pochodnej ........................................................................... 72
Operator przypisania w klasie pochodnej ............................................................................ 73
Destruktor w klasie pochodnej ......................................................................................... 74
Funkcje wirtualne ............................................................................................................. 75
Funkcje czysto wirtualne i klasy abstrakcyjne.................................................................. 76
Polimorfizm...................................................................................................................... 77
Destruktor wirtualny......................................................................................................... 79
Podsumowanie.................................................................................................................. 80
Obsługa sytuacji wyjątkowych................................................................................................................... 83
Ogólny schemat obsługi wyjątków................................................................................... 83
Zgłaszanie i identyfikacja wyjątków ................................................................................ 84
Klasy wyjątków ................................................................................................................ 86
Wyjątki i nowy styl pisania nagłówków funkcji............................................................... 88
Hierarchia klas wyjątków ................................................................................................. 90
Wyjątki generowane przez funkcje biblioteczne .............................................................. 91
Podsumowanie.................................................................................................................. 93
Rozdział 8.
Rozdział 9.
Szablony funkcji i klas..................................................................................................................................... 95
Szablony funkcji............................................................................................................... 95
Szablony klas.................................................................................................................... 97
Domyślne typy — parametry szablonów ........................................................................ 99
Podsumowanie................................................................................................................ 100
Rozdział 10. Kontener vector.................................................................................................................................................. 101
Rozmiary wektorów ....................................................................................................... 101
Iteratory .......................................................................................................................... 104
Wyszukiwanie elementu w wektorze.............................................................................. 107
Sortowanie elementów wektora...................................................................................... 108
Tablice wielowymiarowe................................................................................................ 109
Tablice klas..................................................................................................................... 110
Zewnętrzne funkcje relacji (predykaty) .......................................................................... 114
Podsumowanie................................................................................................................ 116
Zakończenie ...........................................................................................................................................................117
Operacje na plikach
Otwieranie plików do zapisu i odczytu
Ćwiczenie 2.1.
Rozdział
2.
Otwórz plik dyskowy o nazwie test.txt. W pierwszej linii zapisz w nim swoje nazwisko,
w drugiej 10 kolejnych liczb naturalnych, rozdzielonych spacjami (rysunki 2.1a i 2.1b):
KPENWFG KQUVTGCO
KPENWFG HUVTGCO
KPENWFG UVTKPI
WUKPI PCOGURCEG UVF
KPV OCKP
]
UVTKPI VGMUV
EQWV 2QFCL PC\YKUMQ
EKP
VGMUV
QHUVTGCO RNKM VGUVVZV
KH RNKM
]
EQWV 1VYCTVQ RNKM VGUVVZV GPFN
RNKM VGMUV GPFN
EQWV 9RKUCPQ FQ PKGIQ PC\YKUMQ GPFN
HQT KPV K K K
]
EQWV 9RKUCPQ NKE\DG K GPFN
RNKM K
_
_
_
18
C++. Ćwiczenia zaawansowane
Rysunek 2.1a.
Efekt działania
programu,
wpisującego
dane do pliku
Rysunek 2.1b.
Zawartość pliku
test.txt, utworzonego
w programie
Standardowy plik do zapisu jest reprezentowany przez obiekt typu
QHUVTGCO
. Otwarcie
pliku następuje w chwili deklaracji obiektu
RNKM
za pomocą konstruktora, którego argu-
mentem jest dyskowa nazwa pliku. Zapis w pliku realizuje standardowy operator stru-
mieniowego wyjścia
.
Ćwiczenie 2.2.
Napisz program, który odczyta dane z pliku utworzonego w poprzednim ćwiczeniu (ry-
sunek 2.2):
KPENWFG KQUVTGCO
KPENWFG HUVTGCO
KPENWFG UVTKPI
WUKPI PCOGURCEG UVF
KPV OCKP
]
UVTKPI VGMUV
KPV K C
KHUVTGCO RNKM VGUVVZV
KH RNKM
]
RNKM
VGMUV
EQWV VGMUV GPFN
HQT K K K
]
RNKM
C
EQWV C
_
_
_
Plik z chomika:
Ksiazki_20
Inne pliki z tego folderu:
Algorytmy_struktury_danych_i_techniki_programowania_Wydanie_VI_algor6.pdf
(3460 KB)
Czysty_kod_w_C_17_Oprogramowanie_latwe_w_utrzymaniu_czkc17.pdf
(1741 KB)
100_sposobow_na_Visual_Studio_100vis.pdf
(1292 KB)
C_50_efektywnych_sposobow_na_udoskonalenie_Twoich_programow_cp50sp.pdf
(1825 KB)
ABC_programowania_w_C_abccpp.pdf
(344 KB)
Inne foldery tego chomika:
3ds max
Access
Acrobat
After Effects
Agile - Programowanie
Zgłoś jeśli
naruszono regulamin