Poznaj C++ w$ godziny0236

Poznaj C++ w$ godziny0236



Tablice 227

jEFEKT DZIAŁANIA:

Lancuchl: Nikt nie jest sam Lancuch2: Nikt nie jest sam

W linii 10 zastąpiliśmy funkcję strcpy () funkcją strncpy (). Pobiera ona trzeci parametr: maksymalną liczbę znaków do skopiowania. Bufor Lancuch2 może pomieścić MaksDlugosc + 1 znaków. Dodatkowe miejsce przeznaczone jest na znak końca tekstu, dodawany automatycznie przez strcpy() i strncpy().

Klasy obsługujące łańcuchy

Większość kompilatorów C++ zawiera duży zbiór klas służących do manipulacji danymi. Taką klasą jest np. klasa String.

C++ odziedziczyło po C konwencję kończenia tekstu pustym znakiem (nuli) i biblioteki zawierające takie funkcje jak strcpy (). Jednak wszystkie te funkcje nie są wbudowane w obiektowo zorientowaną strukturę języka. Klasa String oferuje odrębny zbiór danych i funkcji służących do specjalistycznego manipulowania danymi. Pozwala ona na ukrycie danych przez użytkownikiem.

Jeśli twój kompilator nie zawiera takiej klasy (a nawet jeśli zawiera), to możesz napisać własną klasę String.

W minimalnej wersji, klasa String musi zapewnić proste ograniczenia tablic znakowych. Jak wszystkie tablice, również tablice znakowe są statyczne. Ty definiujesz ich rozmiar. Tablica zajmuje podaną przez Ciebie ilość pamięci nawet jeśli jej nie wykorzystujesz w całości. Pisanie poza końcem tablicy jest niedozwolone.

Sprawna klasa String zawsze rezerwuje tyle pamięci ile potrzeba. Jeśli zarezerwowanie pamięci nie jest możliwe, to klasa powinna obsługiwać taką sytuację.

Podsumowanie

W trakcie tej godziny nauczyłeś się jak tworzyć tablice w C++. Tablica to określonej

wielkości zbiór obiektów tego samego typu.

Tablice nie zapewniają kontroli wartości indeksów. Możliwe jest zatem pisanie i czytanie za końcem tablicy (aczkolwiek jest to niebezpieczne). Indeksy tablicy rozpoczynają się od 0. Bardzo częstym błędem jest odwoływanie się do elementu pod offsetem nv/n elementowej tablicy.

Tablice mogą być jedno lub wielowymiarowe. W obu przypadkach możliwa jest inicjalizacja tablicy w momencie deklaracji. Dotyczy to tablic wbudowanych w C++ wartości takich jak np. int i obiektów klas, w których zdefiniowany jest konstruktor domyślny.

Tablice i ich zawartość mogą być umieszczone na stercie. Jeśli chcesz usunąć tablicę ze sterty pamiętaj o wykorzystaniu nawiasów kwadratowych przy wywoływaniu delete.

EFEKT DZIAŁANIA:

Lancuchl: Nikt nie jest sam Lancuch2: Nikt nie jest sam

ANALIZA:


W linii 10 zastąpiliśmy funkcję strcpy () funkcją strncpy (). Pobiera ona trzeci parametr: maksymalną liczbę znaków do skopiowania. Bufor Lancuch2 może pomieścić MaksDlugosc + 1 znaków. Dodatkowe miejsce przeznaczone jest na znak końca tekstu, dodawany automatycznie przez strcpy{) i strncpy().

Klasy obsługujące łańcuchy

Większość kompilatorów C++ zawiera duży zbiór klas służących do manipulacji danymi. Taką klasą jest np. klasa String.

C++ odziedziczyło po C konwencję kończenia tekstu pustym znakiem (nuli) i biblioteki zawierające takie funkcje jak strcpy (). Jednak wszystkie te funkcje nie są wbudowane w obiektowo zorientowaną strukturę języka. Klasa String oferuje odrębny zbiór danych i funkcji służących do specjalistycznego manipulowania danymi. Pozwala ona na ukrycie danych przez użytkownikiem.

Jeśli twój kompilator nie zawiera takiej klasy (a nawet jeśli zawiera), to możesz napisać własną klasę String.

W minimalnej wersji, klasa String musi zapewnić proste ograniczenia tablic znakowych. Jak wszystkie tablice, również tablice znakowe są statyczne. Ty definiujesz ich rozmiar. Tablica zajmuje podaną przez Ciebie ilość pamięci nawet jeśli jej nie wykorzystujesz w całości. Pisanie poza końcem tablicy jest niedozwolone.

Sprawna klasa String zawsze rezerwuje tyle pamięci ile potrzeba. Jeśli zarezerwowanie pamięci nie jest możliwe, to klasa powinna obsługiwać taką sytuację.

Podsumowanie

W trakcie tej godziny nauczyłeś się jak tworzyć tablice w C++. Tablica to określonej wielkości zbiór obiektów tego samego typu.

Tablice nie zapewniają kontroli wartości indeksów. Możliwe jest zatem pisanie i czytanie za końcem tablicy (aczkolwiek jest to niebezpieczne). Indeksy tablicy rozpoczynają się od 0. Bardzo częstym błędem jest odwoływanie się do elementu pod offsetem n w n elementowej tablicy.

Tablice mogą być jedno lub wielowymiarowe. W obu przypadkach możliwa jest inicjalizacja tablicy w momencie deklaracji. Dotyczy to tablic wbudowanych w C++ wartości takich jak np. int i obiektów klas, w których zdefiniowany jest konstruktor domyślny.

Tablice i ich zawartość mogą być umieszczone na stercie. Jeśli chcesz usunąć tablicę ze sterty pamiętaj o wykorzystaniu nawiasów kwadratowych przy wywoływaniu delete.


Wyszukiwarka

Podobne podstrony:
Poznaj C++ w$ godziny0222 Tablice 213 Tablice
Poznaj C++ w$ godziny0226 Tablice 217 Jednak taka reprezentacja mniej przystaje do rzeczywistości ni
Poznaj C++ w$ godziny0228 Tablice 219 W książce omówimy* tablice wskaźników, tablice tworzone na ste
Poznaj C++ w$ godziny0230 Tablice 221Wskaźnik do tablicy a tablica wskaźników Rozpatrzmy trzy różne
Poznaj C++ w$ godziny0232 Tablice 223Usuwanie tablicy ze sterty Rodzina jest wskaźnikiem do tablicy
Poznaj C++ w$ godziny0234 Tablice 225 Żeby rozwiązać powstałe problemy, musimy wykorzystać specjalną
Poznaj C++ w$ godziny0202 Zaawansowane funkcje 193 W liniach 53 i 54 wypisywany jest wiek obydwu KOT
Poznaj C++ w$ godziny0055 40 Godzina 4EFEKT DZIAŁANIA; a: Ob: 0x: Oy: 35 a: 9 b: 7 x: 16 y: 16 W lin
Poznaj C++ w$ godziny0077 Funkcje 63EFEKT DZIAŁANIA: Podaj temperaturę w stopniach Fehrenheit-a: 212
Poznaj C++ w$ godziny0117 Godzina 8Zaawansowane sterowanie programem Działanie każdego większego pro
Poznaj C++ w$ godziny0131 Zaawansowane sterowanie programem 119EFEKT DZIAŁANIA: No to ile razy sie p
Poznaj C++ w$ godziny0183 172 Godzina 12 172 Godzina 12 EFEKT DZIAŁANIA: Tworzenie kota... Konstrukt
Poznaj C++ w$ godziny0187 176 Godzina 12 EFEKT DZIAŁANIA: Compile error: Attempting to return a refe
Poznaj C++ w$ godziny0209 200 Godzina 14EFEKT DZIAŁANIA: Nartosc i wynosi: 0 Wartość i wynosi: 1&nbs
Poznaj C++ w$ godziny0216 Przeciążanie operatorów 207 EFEKT DZIAŁANIA: Compile error! Unable to conv
Poznaj C++ w$ godziny0221 212 Godzina 15Rysunek 15.1 Deklarowanie tablicy *— 4 bajty —► 100 bajtów
Poznaj C++ w$ godziny0224 215 TabliceTablice obiektów Każdy obiekt, niezależnie czy jest on standard
Poznaj C++ w$ godziny0227 218 Godzina 15 9:    cout « Tablic*[i] [j]« andl; 10:  
Poznaj C++ w$ godziny0229 220 Godzina 15EFEKT DZIAŁANIA: Kot #1: 1 Kot #2: 3 Kot #3: 5 Kot #499

więcej podobnych podstron