class Student Deklaracja klasy Osoba: Deklaracja klasy Student:

Podobne dokumenty
Wprowadzenie do programowanie obiektowego w języku C++

TEMAT : KLASY DZIEDZICZENIE

Wstęp do Programowania 2

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

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

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

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

Składnia C++ Programowanie Obiektowe Mateusz Cicheński

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

Programowanie obiektowe w języku C++

Programowanie w C++ Wykład 14. Katarzyna Grzelak. 3 czerwca K.Grzelak (Wykład 14) Programowanie w C++ 1 / 27

Konstruktor kopiujacy

PARADYGMATY PROGRAMOWANIA Wykład 2

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

Wykład :37 PP2_W9

Wprowadzenie do programowanie obiektowego w języku C++

Wprowadzenie do obiektowości

W2 Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy :

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Projektowanie klas c.d. Projektowanie klas przykład

Do czego służą klasy?

Programowanie obiektowe

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

Podstawy Programowania Obiektowego

Wprowadzenie w dziedziczenie. Klasa D dziedziczy klasę B: Klasa B klasa bazowa (base class), klasa D klasa pochodna (derived class).

PROGRAMOWANIE OBIEKTOWE W C++ cz. 2. Dziedziczenie, operacje wej cia-wyj cia, przeładowanie operatorów.

Składnia C++ Programowanie Obiektowe Mateusz Cicheński

Programowanie w C++ Wykład 8. Katarzyna Grzelak. 15 kwietnia K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33

Programowanie obiektowe w C++ Wykład 12

Projekty zaliczeniowe z obiektówki

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

Programowanie obiektowe, wykład nr 6. Klasy i obiekty

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

Wprowadzenie do obiektowości

Programowanie w języku C++

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

Wykład 5: Klasy cz. 3

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

Laboratorium 1 - Programowanie proceduralne i obiektowe

dr inż. Jarosław Forenc

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Język C++ zajęcia nr 2

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Wstęp do programowania obiektowego. WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this

Wykład 8: klasy cz. 4

Wstęp do programowania obiektowego. Wykład 2

Programowanie w C++ Wykład 12. Katarzyna Grzelak. 28 maja K.Grzelak (Wykład 12) Programowanie w C++ 1 / 27

Zaawansowane programowanie w języku C++ Klasy w C++

Podstawy Programowania Obiektowego

Programowanie w C++ Wykład 13. Katarzyna Grzelak. 4 czerwca K.Grzelak (Wykład 13) Programowanie w C++ 1 / 26

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

C++ - [4-7] Polimorfizm

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

Programowanie w C++ Wykład 11. Katarzyna Grzelak. 13 maja K.Grzelak (Wykład 11) Programowanie w C++ 1 / 30

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Do czego służą klasy?

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

Java: interfejsy i klasy wewnętrzne

Część 4 życie programu

Ćwiczenia podstawowe, zestaw 5, część 1

PARADYGMATY PROGRAMOWANIA Wykład 4

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

Programowanie komputerowe. Zajęcia 7

Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:

KLASY cz.1. Dorota Pylak

Materiały do zajęć VII

Programowanie obiektowe

Funkcje przeciążone, konstruktory kopiujące, argumenty domyślne

Dzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton

Programowanie Obiektowo Zorientowane w języku C++ Klasy, pola, metody

Programowanie w C++ Wykład 12. Katarzyna Grzelak. 20 maja K.Grzelak (Wykład 12) Programowanie w C++ 1 / 32

2.4 Dziedziczenie. 2.4 Dziedziczenie Przykłady programowania w C - kurs podstawowy

Programowanie obiektowe w języku C++ Zarządzanie procesami. dr inż. Jarosław Forenc. Przeładowanie (przeciążanie) operatorów

Języki i paradygmaty programowania Wykład 2. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18

Programowanie w C++ Wykład 9. Katarzyna Grzelak. 14 maja K.Grzelak (Wykład 9) Programowanie w C++ 1 / 30

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

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

1 Definiowanie prostych klas

Programowanie II. Lista 3. Modyfikatory dostępu plik TKLientBanku.h

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Typy zmiennych proste i złożone. Programowanie komputerów. Tablica. Złożone typy zmiennych. Klasa. Struktura

Deklaracja struktury w C++

Wykład V. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Różne właściwości. Różne właściwości. Różne właściwości. C++ - klasy. C++ - klasy C++ - KLASY

Język ludzki kod maszynowy

PARADYGMATY PROGRAMOWANIA Wykład 3

Enkapsulacja, dziedziczenie, polimorfizm

Mechanizm dziedziczenia

referencje Wykład 2. Programowanie (język C++) Referencje (1) int Num = 50; zdefiniowano zmienną Num (typu int) nadając jej wartość początkową 50.

Wyliczanie wyrażenia obiekty tymczasowe

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

Dziedziczenie. Ogólna postać dziedziczenia klas:

Dziedziczenie. Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. Czas wykładu 45 minut.

Dziedziczenie & W slajdach są materiały zapożyczone z

Programowanie Obiektowew języku C++ Zadania L4

Programowanie, część I

PODEJŚCIE OBIEKTOWE. Przykład 1 metody i atrybuty statyczne

Rozdział 4 KLASY, OBIEKTY, METODY

Wprowadzenie do szablonów szablony funkcji

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

Transkrypt:

Osoba Student Będziemy mieli 2 klasy: Osoba, dla której zapamiętamy dane takie jak: imie, nazwisko i wiek Oraz klasę Student, w której będziemy też dodatkowo pamiętać kierunek studiów. Deklaracja klasy Osoba: Class Osoba public: Osoba(); Osoba( string i, string n, int w ); Osoba( Osoba & innaosoba ); void wypiszdaneosobowe(); void setimie( string i ); void setnazwisko( string n ); void setwiek( int w ); // Akcesory string getimie() const; string getnazwisko() const; int getwiek() const; private: string i; string n;int w; ; Deklaracja klasy Student: class Student

public: Student(); Student( string kierunek_studiow ); Student( const Osoba & o, string kierunek_studiow); void wypiszdaneosobowe(); // Modyfikatory void setimie( string im ); void setnazwisko( string nazw ); void setwiek( int wi ); // Akcesory string getimie() const; string getnazwisko() const; int getwiek() const; // Realizator private: string im, nazw; int wi; string kierunek_studiow; ; Stosując zasadę hermetyzacji ukrywamy dane w części prywatnej i zapewniamy dostęp poprzez metody dostępowe (interfejsowe). Funkcje publiczne klasy można nieformalnie podzielić na; akcesory funkcje umożliwiające pobieranie wartości pol, akcesorem jest np. metoda getimie. modyfikatory funkcje dokonujące modyfikacji wartości pol, modyfikatorem jest np. metoda setimie.

realizatory funkcje realizujące właściwe dla danej klasy usługi, realizatorem jest np. metoda wypiszdaneosobowe. Obiekt klasy Osoba od strony programisty-użytkownika Osoba o1; Deklaracja obiektu o1 klasy Osoba: O1.setImie( Agnieszka ); Ustalenie imienia jako Agnieszka Sekcje private i public Dwie podstawowe sekcje: private elementy zadeklarowane w tej sekcji mogą być wykorzystywane wyłącznie przez funkcje składowe danej klasy. Elementami tymi mogą być zarówno pola i funkcje. Mowi się o nich, że są prywatne. public elementy zadeklarowane w tej sekcji są dostępne rownież dla innych elementow programu. Mowi się o nich, że są publiczne lub stanowią interfejs klasy. Definicja funkcji składowych Osoba::Osoba() : i("stefek"),n("burczymucha"), w(100) //Konstruktory dlaosoby Osoba::Osoba(string i, string n, int w) : w(w), i(i), n(n) Osoba::Osoba( Osoba & innaosoba ) : i (innaosoba.i), n(innaosoba.n), w(innaosoba.w)

void Osoba::wypiszDaneOsobowe() cout << "\nimie osoby " << Osoba::getImie() << "\nnazwisko " << Osoba::getNazwisko() << endl; cout << "\nosoba ma lat "<< Osoba::getWiek() << endl; void Osoba::setImie( string im ) Osoba::i = im; void Osoba::setNazwisko( string nazw ) Osoba::n = nazw; // Akcesory string Osoba::getImie() const return i; string Osoba::getNazwisko() const return n; void Osoba::setWiek( int w ) Osoba::w = w; int Osoba::getWiek() const return w; Teraz to samo dla klasy Student: Student::Student() : kierunek_studiow("") //Konstruktory dla Studenta Student::Student(string kierunek_studiow(kierunek_studiow) kierunek_studiow): Student::Student( const Osoba & o, string kierunek_studiow): im( o.getimie() ), nazw (o.getnazwisko()), wi(o.getwiek()),kierunek_studiow (kierunek_studiow) void Student::setImie( string im ) Student::im = im; void Student::setNazwisko( string nazw ) Student::nazw = nazw; void Student::setWiek( int w ) Student::wi = w;

// Akcesory string Student::getImie() const return im; string Student::getNazwisko() const return nazw; int Student::getWiek() const return wi; void Student::wypiszDaneOsobowe() cout << "\nkierunek studiow " << kierunek_studiow << endl; A teraz ciało funkcji main a więc główny program void wyswietl_menu(); void czysc_bufor(); void opisz_osobe(); void opisz_studenta(); int main() char klawisz; //Osoba o1; do wyswietl_menu(); cin >> klawisz; switch( klawisz ) case '1' : opisz_osobe(); break; case '2' : opisz_studenta(); break; default : if( klawisz!= 'q' ) cout<< '\a'; break; while ( klawisz!= 'q' ); return EXIT_SUCCESS;

/*******************************************/ //Funkcja wyswietl menu void wyswietl_menu() system("cls"); cout << "Opisy..." << endl; cout << endl; cout << "1. osoba \n2. student"; cout << "\n\nwybierz numer lub (q)uit aby zakonczyc: "; /*******************************************/ void opisz_osobe() system("cls"); string imie, nazwisko; int wiek; cout << "Opisy dla osoby" << endl; cout << "Podaj imie: "; cin >> imie; cout << "Podaj nazwisko: "; cin >> nazwisko; cout << "Podaj wiek: "; cin >> wiek; Osoba o1; o1.setimie(imie); o1.setnazwisko(nazwisko); o1.setwiek(wiek); o1.wypiszdaneosobowe(); system("pause"); /*******************************************/ void opisz_studenta() system("cls");

string imie, nazwisko; int wiek; string kierunek_studiow; cout << "kierunek studiow" << endl; cout << "Podaj kierunek "; cin >> kierunek_studiow; Osoba o2; Student s1(o2,kierunek_studiow); o2.wypiszdaneosobowe(); s1.wypiszdaneosobowe(); system("pause"); /*******************************************/ Jak zainicjować obiekt na etapie jego definiowania? Konstruktor jest specjalną funkcją, aktywowaną przez kompilator automatycznie w momencie gdy obiekt jest tworzony. Dzieje się tak zanim programista będzie mogł dorwać obiekt. Konstruktor ma przygotować obiekt do życia. Konstruktor to specyficzna funkcja. Konstruktor nie ma typu rezultatu, nosi taką nazwę jak nazwa klasy i zwykle nie wywołuje się go jawnie w kodzie programu. Rodzaje konstruktorów Występują cztery rodzaje konstruktorów: Konstruktor domyślny (ang. default constructor) aktywowany, gdy tworzony jest obiekt bez jawnie określonych danych inicjalizujących. Konstruktor ogólny (ang. general constructor), zwany też parametrowym, aktywowany gdy tworzymy obiekt z jawnie określonymi danymi inicjalizującymi.

Konstruktor kopiujący (ang. copy constructor) aktywowany wtedy, gdy tworzymy obiekt, inicjalizując go danymi z innego obiektu tej samej klasy. Operator & oznacza referencję, umieszczony w deklaracji parametru oznacza przekazanie przez zmienną. Konstruktor rzutujący (ang. cast constructor) aktywowany wtedy, gdy tworzymy obiekt, inicjalizując go danymi z obiektu innej klasy. Przykład konstruktora domyślnego: Osoba o1; Przykład konstruktora ogólnego: Osoba o0 ("Ala","Nowak", 33); Przykład konstruktora kopiującego: Osoba o2; Osoba o3(o2); Przykład konstruktora rzutującego: Osoba o2; Student s1(o2,kierunek_studiow); Metody ze specyfikacją const nie mogą modyfikować pól obiektu, mogą zatem być wywoływane dla obiektów stałych string getimie() const; string getnazwisko() const; int getwiek() const;