Deklaracja struktury w C++

Podobne dokumenty
Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

Zmienne i struktury dynamiczne

> C++ dynamiczna alokacja/rezerwacja/przydział pamięci. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki

ZASADY PROGRAMOWANIA KOMPUTERÓW

Wskaźnik może wskazywać na jakąś zmienną, strukturę, tablicę a nawet funkcję. Oto podstawowe operatory niezbędne do operowania wskaźnikami:

Wykład 8: klasy cz. 4

Podstawy programowania. Wykład: 12. Struktury, unie, pola bitowe. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Algorytmy i język C++

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

ALGORYTMY I STRUKTURY DANYCH

Wykład 1: Wskaźniki i zmienne dynamiczne

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

Program 6. Program wykorzystujący strukturę osoba o polach: imię, nazwisko, wiek. W programie wykorzystane są dwie funkcje:

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

Rozdział 4 KLASY, OBIEKTY, METODY

Wykład 4: Klasy i Metody

Globalne / Lokalne. Wykład 15. Podstawy programowania (język C) Zmienne globalne / lokalne (1) Zmienne globalne / lokalne (2)

Programowanie obiektowe Wykład 3. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/21

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

DYNAMICZNE PRZYDZIELANIE PAMIECI

Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4. Wskaźniki. Dynamiczna alokacja pamięci. Przykłady

Struktury typ definiowany przez uŝytkownika.

Aplikacje w środowisku Java

Konwersje napis <-> liczba Struktury, unie Scanf / printf Wskaźniki

Programowanie komputerowe. Zajęcia 7

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami

Programowanie 3 - Funkcje, pliki i klasy

Czym są właściwości. Poprawne projektowanie klas

Podstawy programowania w języku C++

Operator przypisania. Jest czym innym niż konstruktor kopiujący!

Struktury, unie, formatowanie, wskaźniki

// Liczy srednie w wierszach i kolumnach tablicy "dwuwymiarowej" // Elementy tablicy są generowane losowo #include <stdio.h> #include <stdlib.

TABLICA (ang. array) pojedyncza zmienna z wieloma komórkami, w których można zapamiętać wiele wartości tego samego typu danych.

Struktury Struktura polami struct struct struct struct

Jak napisać listę jednokierunkową?

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 8. Karol Tarnowski A-1 p.

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 8. Karol Tarnowski A-1 p.

Wykład 5: Klasy cz. 3

Podstawy Programowania Obiektowego

Programowanie i struktury danych

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)

Podstawy programowania. Wykład 6 Złożone typy danych: struktury, unie. Krzysztof Banaś Podstawy programowania 1

Klasa jest nowym typem danych zdefiniowanym przez użytkownika. Najprostsza klasa jest po prostu strukturą, np

Aplikacje w środowisku Java

Język C zajęcia nr 12. Struktury i unie

Część 4 życie programu

Ok. Rozbijmy to na czynniki pierwsze, pomijając fragmenty, które już znamy:

Struktury - wprowadzenie

Programowanie 2. Język C++. Wykład 3.

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Programowanie, część I

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.

Podstawy programowania skrót z wykładów:

Podstawy algorytmiki i programowania - wykład 4 C-struktury

Dla każdej operacji łącznie tworzenia danych i zapisu ich do pliku przeprowadzić pomiar czasu wykonania polecenia. Wyniki przedstawić w tabelce.

Programowanie komputerowe. Zajęcia 1

Typy wyliczeniowe Konwersje napis <-> liczba Struktury, unie Scanf / printf Wskaźniki

Ćwiczenie 7 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

PHP 5 język obiektowy

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Algorytmy i złożoności. Wykład 3. Listy jednokierunkowe

Klasy abstrakcyjne i interfejsy

Programowanie komputerowe. Zajęcia 5

C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU

Laboratorium 1 - Programowanie proceduralne i obiektowe

Programowanie obiektowe W3

TEMAT : KLASY DZIEDZICZENIE

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec

Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw

C-struktury wykład. Dorota Pylak

class Student Deklaracja klasy Osoba: Deklaracja klasy Student:

Klasy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 13

dr inż. Jarosław Forenc

Zajęcia 6 wskaźniki i tablice dynamiczne

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

Diagram klas UML jest statycznym diagramem, przedstawiającym strukturę aplikacji bądź systemu w paradygmacie programowania obiektowego.

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 16 kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27

typ y y p y z łoż o on o e n - tab a lice c e w iel e owym m ar a o r we, e stru r kt k ury

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

> C++ typy wyliczeniowe, struktury, unie, konwersje napis <-> liczba, formatowanie wyjścia

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Język C++ Różnice między C a C++

Budowa i generowanie planszy

Programowanie 2. Język C++. Wykład 9.

Deklaracja i definicja metod, zwracanie wartości z metod, przekazywania parametrów do metod

XV. Wskaźniki Odczytywanie adresu pamięci istniejących zmiennych Wskaźniki pierwsze spojrzenie.

Programowanie strukturalne i obiektowe. Funkcje

Programowanie - wykład 4

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne

PHP: bloki kodu, tablice, obiekty i formularze

Programowanie obiektowe w języku C++ dr inż. Jarosław Forenc

Egzamin z Podstaw informatyki i programowania 2007/2008

Laboratorium nr 9. Temat: Wskaźniki, referencje, dynamiczny przydział pamięci, tablice dynamiczne. Zakres laboratorium:

Transkrypt:

Struktury to złożone typy danych pozwalające przechowywać różne informacje. Za pomocą struktur możliwe jest grupowanie wielu zmiennych o różnych typach w jeden obiekt. Strukturę można nazywać obiektem lub pojemnikiem czy też rekordem. Dzięki strukturom można w prosty sposób organizować zbiory danych, bez konieczności korzystania z tablic (np. bardzo niewygodnie tworzyć bazę danych na tablicach). Deklaracja struktury w C++ Utworzę przykładową strukturę reprezentującą osobę. Dzięki utworzeniu takiej struktury, będzie można przechowywać informacje takie jak imię, nazwisko i wiek w jednym pojemniku. 1 struct osoba ; Słowo kluczowe struct informuje kompilator, że zostanie zadeklarowana struktura. Na drugim miejscu znajduje się nazwa struktury. Następnie w klamerkach występują kolejno po sobie pola struktury czyli zmienne. 1 struct osoba jan, artur, zenon; W powyższym przykładzie, oprócz deklaracji struktury zostały także utworzone jej obiekty. Nazwy nowych obiektów struktury wypisuje się po przecinku po bloku z polami. Do struktury można dołączyć także funkcje jednak nie jest to dobry zabieg. Struktury w C mogły zawierać tylko pola. W C++ wprowadzono także możliwość dołączania metod do struktury czyli funkcji. Metoda to inaczej funkcja w strukturze Pole to inaczej zmienna w strukturze Struktura w C++ działa na takiej samej zasadzie jak klasa, to właśnie klasa powinna Karol Trybulec p-programowanie.pl 1

organizować różne metody oraz pola. Używając struktur w naszym programie, chcąc poszerzyć ją o metody, warto rozważyć po prostu użycie klas. W internecie często będziesz spotykał nieco inną deklarację struktury z użyciem rozkazu typedef. Przykład takiej deklaracji to np: 1 1 1 1 1 1 1 0 1 typedef struct osoba Osoba; Osoba listonosz; // styl C++ struct osoba strazak; // styl C listonosz.imie = "Jan"; strazak.imie = "Piotr"; cout << "Imie listonosza: " << listonosz.imie << endl; cout << "Imie strazaka: " << strazak.imie << endl; Taka forma deklaracji była używana w języku C. W języku C deklarując strukturę trzeba było za każdym razem jej typ poprzedzać słowem struct nawet w głównej funkcji programu. Dlatego programiści tworzyli typ złożony za pomocą rozkazu typedef. Dzięki temu zamiast pisać za każdym razem struct osoba ktos, można było używać struktur tak jak w teraz w C++ czyli osoba ktos. Wczytywanie danych do struktury Posiadamy zadeklarowaną strukturę osoba. Wykorzystajmy ją w programie. Na początku utworzymy obiekt struktury, następnie wypełnimy danymi i wyświetlimy dowolne pole: Karol Trybulec p-programowanie.pl

1 1 1 1 1 1 1 0 1 // deklaracja struktury struct osoba ; osoba jan; // tworzenie obiektu struktury o nazwie jan jan.imie = "Jan"; jan.nazwisko = "Kowalski"; jan.wiek = ; cout << "Twoje imie to: " << jan.imie << endl; Jest to prosty przykład na to, jak działa wypełnianie struktur danymi. Zauważ, że chcąc korzystać ze zmiennych struktury odwołujemy się do nich najpierw podając nazwę obiektu struktury, następnie nazwę pola po kropce. Mamy dostęp do wszystkich pól struktury, bo domyślnie są mają one atrybut public. Warto dodać, że jest to właśnie jedna z różnic pomiędzy strukturą a klasą. Klasa domyślnie posiada atrybut private na wszystkie swoje metody i pola. Tablica struktur Tablica struktur doskonale sprawdza się podczas tworzenia prostych programów bazodanowych. Bez korzystania ze struktur trzeba było by użyć tablicy dwuwymiarowej, pierwszy wymiar odpowiadał by indeksie osoby, a drugi zawierał by odpowiednie informacje o niej. Oczywiście tablica posiada wszystkie elementy jednego typu co jest nie wygodne. Tak samo jak tworzy się tablice z typów podstawowych, tak samo robi się to używając struktur: Karol Trybulec p-programowanie.pl

1 1 1 1 1 1 1 0 1 0 1 // deklaracja struktury struct osoba ; osoba uczniowie[]; // tablica ze struktury for (int i = 0; i<; i++) // pobieramy dane cout << "Podaj imie ucznia numer " << i+1 << endl; cin >> uczniowie[i].imie; for (int i = 0; i<; i++) // wyświetlamy tablicę cout << uczniowie[i].imie << endl; Struktury dynamiczne Struktury w C++ często są tworzone w sposób dynamiczny, czyli przy użyciu wskaźników. Należy pamiętać aby zawsze zwalniać pamięć po nie używanych obiektach, które utworzyliśmy. Uwaga! W strukturze statycznej odwołując się do pól używaliśmy kropki (.). W strukturze dynamicznej odwołując się do pól korzystamy z operatora strzałki (->). Karol Trybulec p-programowanie.pl

Poniższy przykład demonstruje inicjację struktury, użycie operatora ->, oraz zwolnienie pamięci: 1 1 1 1 1 1 1 0 1 struct osoba ; osoba * sklepowy = new osoba; // wskaźnik *sklepowy na strukturę sklepowy->imie = "Andrzej"; cout << sklepowy->imie << endl; delete sklepowy; // usuwamy obiekt Operator -> ułatwia nam sprawę. Zauważ, że nazwa zmiennej strukturalnej jest wskaźnikiem. Chcąc posłużyć się kropką tak jak przy strukturze statycznej, musiało by wyglądać to tak: 1 osoba * sklepowy = new osoba; // wskaźnik *sklepowy na strukturę (*sklepowy).imie = "Andrzej"; // to to samo (tu brzydko) sklepowy->imie = "Andrzej"; // to to samo (tu ładnie) delete sklepowy; // usuwamy obiek Karol Trybulec p-programowanie.pl