Programowanie obiektowe C++
|
|
- Patrycja Zakrzewska
- 8 lat temu
- Przeglądów:
Transkrypt
1 Programowanie obiektowe C++ Programowanie zorientowane obiektowo Wykład 3 Witold Dyrka witold.dyrka@pwr.wroc.pl 22/10/2012
2 Prawa autorskie itp. Wiele slajdów do tego wykładu powstało w oparciu o: slajdy Bjarne Stroustrupa do kursu Foundations of Engineering II (C++) prowadzonego w Texas A&M University C++ Operator Overloading Guidelines, Donnie Pinkston, Caltech przykładowe programy Jerzego Grębosza do książki Symfonia C++ Standard Dziękuję dr inż. lek. med. Marcinowi Masalskiemu za udostępnienie materiałów do wykładu w roku ak. 2010/11
3 Program wykładów 1. Wprowadzenie. Obsługa błędów. Klasy (8/10) 2. Abstrakcja i enkapsulacja: klasy i struktury. (15/10) 3. Polimorfizm: przeładowanie funkcji i operatorów. Konwersje (22/10) 4. Zarządzanie pamięcią: konstruktory, destruktory, pryzpisanie (29/10) 5. Dziedziczenie. Polimorfizm dynamiczny (5/11) 6. Programowanie uogólnione: szablony (12/11)
4 Materiały Literatura Bjarne Stroustrup. Programowanie: Teoria i praktyka z wykorzystaniem C++. Helion (2010) Jerzy Grębosz. Symfonia C++ standard. Edition 2000 (2008) C++ Operator Overloading Guidelines, Donnie Pinkston, Caltech Dowolny podręcznik programowania zorientowanego obiektowo w języku C++ w standardzie ISO 98 Środowisko programistyczne Microsoft Visual C++ (rekomendowane) Dowolne środowisko korzystające z GCC
5 Słowniczek Abstrakcja technika tworzenie programu tak, aby można było z niego korzystać bez wnikania w szczegóły implementacji Enkapsulacja (hermetyzacja) ukrywanie składowych klasy zawierających szczegóły implementacji Interfejs część klasy umożliwiająca korzystanie z obiektu (co można zrobić z obiektem) Implementacja część klasy definiująca szczegółowe sposoby przechowywania danych i działania (jak to jest robione) Niezmienniki reguły opisujące poprawne stany klasy
6 Słowniczek Funkcje składowe funkcje zdefiniowane w klasie, mają dostęp do wszystkich składników obiektu Stałe funkcje składowe funkcje składowe, które nie mogą modyfikować obiektu Funkcje pomocnicze funkcje zdefiniowane poza klasą, które operują na obiektach klasy Funkcje zaprzyjaźnione funkcje pomocnicze z prawem dostępu do prywatnych składników klasy Składniki statyczne wspólne dla wszystkich obiektów klasy, nie związane z konkretnym obiektem
7 Plan na dziś Polimorfizm (statyczny) przeładowanie nazwy funkcji przeładowanie operatorów Konwersje
8 Przeładowanie nazwy funkcji void wypisz(int); void wypisz(char, double, const string); void wypisz(int, char); void wypisz(char, int); int main() { wypisz(12345); wypisz(8, 'X'); wypisz('d', 89.5, " stopni Celsjusza "); wypisz('m', 22); void wypisz(int liczba) { cout << "Liczba typu int: " << liczba << endl; void wypisz(char numer_bloku, double wartosc, const string opis ) { cout << "Blok " << numer_bloku << ": " << wartosc << opis << endl; void wypisz(int liczba, char znak) { cout << znak << ") " << liczba << endl; void wypisz(char stan, int liczba) { cout << liczba << " razy wystapil stan " << stan << endl;
9 Przeładowanie nazwy funkcji void wypisz(int); void wypisz(char, double, const string); void wypisz(int, char); void wypisz(char, int); int main() { wypisz(12345); wypisz(8, 'X'); wypisz('d', 89.5, " stopni Celsjusza "); wypisz('m', 22); Liczba typu int: X) 8 Blok D: 89.5 stopni Celsiusza 22 razy wystapil stan M Aby kontynuować, naciśnij dowolny klawisz... void wypisz(int liczba) { cout << "Liczba typu int: " << liczba << endl; void wypisz(char numer_bloku, double wartosc, const string opis ) { cout << "Blok " << numer_bloku << ": " << wartosc << opis << endl; void wypisz(int liczba, char znak) { cout << znak << ") " << liczba << endl; void wypisz(char stan, int liczba) { cout << liczba << " razy wystapil stan " << stan << endl;
10 Polimorfizm statyczny Dla kompilatora i linkera nazwa funkcji składa się z nazwy funkcji i typu argumentów, np. w MS VC : void wypisz(int) (?wypisz@@yaxh@z) void wypisz(char, double, const string) (?wypisz@@yaxdnv? $basic_string@du?$char_traits@d@std@@v $allocator@d@2@@std@@@z) void wypisz(int, char) (?wypisz@@yaxhd@z) void wypisz(char, int) (?wypisz@@yaxdh@z) int wypisz(double) (?wypisz@@yahn@z) Decyzja, którą wersję funkcji wybrać jest podejmowana na etapie kompilacji przeładowujemy nazwę funkcji nie samą funkcję Dociekliwi: zajrzyjcie do pliku.obj
11 Reguły Różne wersje funkcji muszą różnić się typami argumentów int funkcja1(int argument1); int funkcja1(int parametr1); int funkcja3(int argument1); int funkcja3(double argument2); int funkcja2(int); double funkcja2(int); int funkcja4(int, char); int funkcja4(char, int); int funkcja5(double); int funkcja5(const double); int funkcja6(double &); int funkcja6(const double&); Kompilator musi móc rozróżnić o którą wersję chodzi: void funkcja7(int parametr1); void funkcja8(int parametr1, int p2 = 0); void funkcja7(int ¶metr1); void funkcja8(int parametr1);
12 Reguły Różne wersje funkcji muszą różnić się typami argumentów int funkcja1(int argument1); int funkcja1(int parametr1); int funkcja3(int argument1); int funkcja3(double argument2); int funkcja2(int); double funkcja2(int); int funkcja4(int, char); int funkcja4(char, int); Poprawny kod, ale łatwo o pomyłkę NIE POLECAM int funkcja5(double); int funkcja5(const double); int funkcja6(double &); int funkcja6(const double&); Kompilator musi móc rozróżnić o którą wersję chodzi: void funkcja7(int parametr1); void funkcja8(int parametr1, int p2 = 0); void funkcja7(int ¶metr1); void funkcja8(int parametr1); int a,&b=a; funkcja8(10); // Błąd! funkcja7(a); // Błąd! funkcja8(10,1); // ale to ok funkcja7(b); // Błąd! Dokładne zasady dopasowywania? Poszukaj sam(a)!
13 Plan na dziś Polimorfizm (statyczny) przeładowanie nazwy funkcji przeładowanie operatorów Konwersje
14 Przeładowanie operatorów Można zdefiniować (czyli przeładować) prawie wszystkie operatory dla operandów typu użytkownika (klasa, wyliczenie), np. enum Month { jan=1, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec ; Month operator++(month& m) { m = (m==dec)? jan : Month(m+1); return m; // operator inkrementacji prefiksowej // zawijanie Month m = nov; ++m; // m zmienia się na dec ++m; // m zmienia się na jan
15 Zasady przeładowania operatorów Można definiować działania tylko istniejących operatorów np. + - * / % [] () ^! & < <= > >= Trzeba zachować konwencjonalną liczbę operandów np., nie ma unarnego (jednoargumentowego) <= (mniejsze-równe) albo binarnego (dwuargumentowego)! (negacja) Każdy przeładowany operator musi mieć przynajmniej jeden operand typu użytkownika int operator+(int,int); // błąd: nie można przeładować wbudowanego+ Wielomian operator+(const Wielomian&, const Wielomian &); // ok Wielomian operator+(const Wielomian&, int); // ok Dobre rady: nadawaj operatorom tylko konwencjonalne znaczenie + powinnien być dodawaniem, * - mnożeniem, [] - dostępem, a () wywołaniem przeładowuj tylko jeśli to naprawdę potrzebne
16 Złożone operatory przypisania +=, -=, *=,... Załóżmy że potrzebujesz operatorów + i - Naturalne jest oczekiwanie, że udostępnisz też += i -= Zacznij definiowanie operatorów właśnie od nich Modyfikują obiekt na którym działają Zdefiniuj je jako nie-statyczne składowe klasy Punkt & Punkt::operator+=(const Punkt &prawa_strona) { this->x += prawa_strona.x; // this jest wskaźnikiem na obiekt y += prawa_strona.y; // na rzecz którego wywoływana this->z += prawa_strona.z; // jest funkcja lub operator return *this; // zamiana obiektu *this na referencję następuje automatycznie
17 Złożone operatory przypisania +=, -=, *=,... Punkt & Punkt::operator+=(const Punkt &prawa_strona) { this->x += prawa_strona.x; this->y += prawa_strona.y; this->z += prawa_strona.z; return *this; Przekazujemy zmienną prawa_strona przez referencję ze względu na efektywność stała referencja obiecujemy, że nie zmieniamy prawej strony przypisania Zwracamy referencję do lewej strony przypisania umożliwia sekwencję przypisań, jak dla typów wbudowanych, np. int a, b, c; (a += b) += c; Punkt A(0,1,2), B(3,4,5), C(6,7,8); (A += B) += C;
18 Dwuargumentowe operatory arytmetyczne +, -, *,... Nie modyfikują obiektów, które są ich operandami Zdefiniuj je jako funkcje pomocnicze poza klasą const Punkt operator+(const Punkt &lewa_strona, const Punkt &prawa_strona) { Punkt wynik = lewa_strona; // tworzy zmienną wynik i inicjuje ją // zmienną lewa_strona // (używa konstruktora kopiującego) wynik += prawa_strona; // wykorzystuje operator złożonego przypisania return wynik; To samo, tylko zwieźle: const Punkt operator+(const Punkt &lewa_strona, const Punkt &prawa_strona) { return Punkt(lewa_strona) += prawa_strona; Zwracamy stałą wartość by udaremnić nonsensowny kod typu: (a + b) = c; // bez sensu
19 Pre- i postinkrementacja ++C i C++ class Proba { int numer_kolejny; vector<bool> wynik; ; Proba pr(0); Preinkrementacja: cout << ++pr; // równoważne pr.operator++(); Proba &Proba::operator++() { this->numer_kolejny++; this->wynik.push_back(false); //... return *this; // operator inkrementacji prefiksowej // modyfikuje obiekt, więc w klasie Postinkrementacja: cout << pr++; // równoważne pr.operator++(0); Proba Proba::operator++(int pomijany) { // operator inkrementacji postfiksowej Proba kopia = *this; // wykonaj kopię bieżącego stanu obiektu this ++(*this); // wykorzystaj operator preinkrementacji return kopia;
20 Operatory porównania ==,!= bool operator==(const Punkt &lewa_strona, const Punkt &prawa_strona) { return lewa_strona.wezx() == prawa_strona.wezx() && lewa_strona.wezy() == prawa_strona.wezy && lewa_strona.wezz() == prawa_strona.wezz; // Zauważ: operator== wcale nie musi być zaprzyjaźniony z klasą Punkt bool operator!=(const Punkt &lewa_strona, const Punkt &prawa_strona) { return!(lewa_strona==prawa_strona); // wykorzystaj operator równości
21 Operatory wczytania >> i wypisania << MojaKlasa mk; cin >> mk; cout << mk; Modyfikują strumienie wejścia (cin) / wyjścia (cout) operator>> modyfikuje obiekt mk typu MojaKlasa Wymagana składnia: ostream& operator<<(ostream &, const MojaKlasa &); istream& operator>>(istream &, MojaKlasa &); // wypisywanie // wczytywanie Operator NIE może być funkcją składową MojaKlasa::operator>>(...) (pierwszy argument NIE jest typu MojaKlasa)
22 Przykład: Operatory wczytania >> i wypisania << dla klasy Date ostream& operator<<(ostream os&, const Date &d) { // wypisywanie daty return os << '(' << d.year() // obiekt os klasy ostream może być << '/' << d.month() // ekranem, plikiem lub łańcuchem zn. << '/' << d.day() << ')'; istream& operator>>(istream &is, Date &d) { // wczytywanie daty // w formacie (rok/miesiać/dzień) int y,m,d; // rok, miesiąc, dzień char ch1,ch2,ch3,ch4; // znaki formatujące is >> ch1 >> y >> ch2 >> m3 >> ch3 >> d >> ch4; if (!is) return is; // jeśli wystąpił błąd wejścia (bool operator!() const) if (ch!='(' ch2!='/' ch3!='/' ch4!=')') // błąd formatu daty is.clear(ios_base::failbit) ; // ustawia bit błędu oznaczający zły format // Dla dociekliwych: możnaby is skonfigurować tak aby wyrzucała tutaj wyjątek return is;
23 Operator dostępu [] Musi być składową funkcji pobiera jeden parametr indeks powinien być przeładowany dwukrotnie w wersji zmieniającej i niezmieniającej obiektu double &Wielomian::operator[](int który) { return wektor_wspolczynnikow.at(ktory); // at() - funkcja z kontrolą zakresu class Agent { vector<string> nazwisko, kryptonim; ; string &Agent::operator[](string szukany_kryptonim) { for (int i=0; i<kryptonim.size(); i++) if (kryptonim[i]==szukany_kryptonim) return(nazwisko[i]); throw runtime_error(''brak danych''); Agent listaagentow; cout << listaagentow[''007'']; // można indeksować // innymi typami niż int
24 Operator wywołania () Kiedy klasa ma jedną główną funkcję, np. void Klakson::operator()(int ile_razy) { for (int i=0;i<ile_razy;i++) cout << ''Ti-tit!\t''; lub gdy tworzymy obiekt funkcyjny, np. struct Punkt { double x; double y; double z; //... ; std::vector<punkt> punkty; //Tworzymy obiekty funkcyjne struct PorownajPunktyX { bool operator()(const Punkt &a, const Punkt& b) const { return a.x < b.x; ; struct PorownajPunktyY { bool operator()(const Punkt &a, const Punkt& b) const { return a.y < b.y; ; std::sort(punkty.begin(), punkty.end(), PorownajPunktyX()); std::sort(punkty.begin(), punkty.end(), PorownajPunktyY()); // sortuj wg współrzędnej X // sortuj wg współrzędnej Y
25 Plan na dziś Polimorfizm (statyczny) Konwersje
26 struct zespol { double rzeczyw; double urojon; Konwersje ; zespol(double r, double i):rzeczyw(r),urojon(i) { // konstruktor int main() { double x = 3.21; zespol z(6, -2);
27 struct zespol { double rzeczyw; double urojon; Konstruktor konwertujący ; zespol(double r, double i):rzeczyw(r),urojon(i) { // konstruktor zespol(double r):rzeczyw(r),urojon(0) { // konstruktor konwerujący double -> zespol int main() { double x = 3.21; zespol z(6, -2); zespol zz(x);
28 struct zespol { double rzeczyw; double urojon; Konwersja ; zespol(double r, double i):rzeczyw(r),urojon(i) { // konstruktor zespol(double r):rzeczyw(r),urojon(0) { // konstruktor konwerujący double -> zespol const zespol dodaj(const zespol& a, const zespol& b); int main() { double x = 3.21; zespol z(6, -2); zespol zz(x); zespol wynik = dodaj(z, zz); // niepotrzebna żadna konwersja // poniższe wywołanie nie jest dopasowane, ale mimo to możliwe, bo // kompilator samoczynnie zastosuje naszą konwersję wynik = dodaj(z, 4); // konstr. konwertujący double --> zespol dodaj(z,zespol(4))
29 struct zespol { double rzeczyw; double urojon; Zwięzły konstruktor ; zespol(double r, double i = 0):rzeczyw(r),urojon(i) { // konstruktor (konwertujący) const zespol dodaj(const zespol& a, const zespol& b); int main() { double x = 3.21; zespol z(6, -2); zespol zz(x); zespol wynik = dodaj(z, zz); // niepotrzebna żadna konwersja // poniższe wywołanie nie jest dopasowane, ale mimo to możliwe, bo // kompilator samoczynnie zastosuje naszą konwersję wynik = dodaj(z, 4); // konstr. konwertujący double --> zespol dodaj(z,zespol(4))
30 struct zespol { double rzeczyw; double urojon; Funkcja konwertująca ; zespol(double r, double i = 0):rzeczyw(r),urojon(i) { operator double() { return rzeczyw; // konstruktor (konwertujący) // operator konwersji double pole_kwadratu(double bok) { return bok*bok; int main() { double x = 3.21; zespol z(6, -2); double pole = pole_kwadratu(x); // niepotrzebna żadna konwersja // poniższe wywołanie nie jest dopasowane, ale mimo to możliwe, bo // kompilator samoczynnie zastosuje naszą konwersję pole = pole_kwadratu(z); // operator konwersji zespol -> double // pole_kwadratu(double(z))
31 struct zespol { double rzeczyw; double urojon; Uwaga! ; zespol(double r, double i = 0):rzeczyw(r),urojon(i) { operator double() { return rzeczyw; // konstruktor (konwertujacy) // operator konwersji const zespol dodaj(const zespol& a, const zespol& b); const zespol operator+(const zespol& a, const zespol& b); double pole_kwadratu(double bok) { return bok*bok; int main() { double x = 3.21; zespol z(6, -2); wynik = dodaj(z,x); wynik = z+x; // ok, dodaj(z,zespol(x)) // Błąd! z+zespol(x) czy double(z)+x Rzeczywiście, biblioteczny typ complex nie ma operatora konwersji zamiast tego są funkcje real i imag
32 Dziś najważniejsze było to, że... Przeładowanie funkcji różne zachowania dla różnych typów argumentów Przeładowanie operatorów Można definiować działania tylko istniejących operatorów Trzeba zachować konwencjonalną liczbę operandów Każdy przeładowany operator musi mieć przynajmniej jeden operand typu użytkownika Nadawaj operatorom tylko konwencjonalne znaczenie Przeładowuj tylko jeśli to naprawdę potrzebne
33 A za tydzień... Zarządzanie pamięcią: konstruktor, destruktor, przypisanie...
Programowanie obiektowe C++
Programowanie obiektowe C++ Programowanie zorientowane obiektowo Wykład 2 Witold Dyrka witold.dyrka@pwr.wroc.pl 24/10/2011 Prawa autorskie itp. Wiele slajdów do tego wykładu powstało w oparciu o: slajdy
Programowanie obiektowe C++
Programowanie obiektowe C++ Programowanie zorientowane obiektowo Wykład 1 Witold Dyrka witold.dyrka@pwr.wroc.pl 10/10/2011 Prawa autorskie itp. Wiele slajdów do tego wykładu powstało w oparciu o: slajdy
Programowanie obiektowe C++
Programowanie obiektowe C++ Programowanie zorientowane obiektowo Wykład 5 Witold Dyrka witold.dyrka@pwr.wroc.pl 5/11/2012 Prawa autorskie itp. Niektóre slajdy do tego wykładu powstało w oparciu o: książkę
C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów
Operatory są elementami języka C++. Istnieje zasada, że z elementami języka, takimi jak np. słowa kluczowe, nie można dokonywać żadnych zmian, przeciążeń, itp. PRZECIĄŻANIE OPERATORÓW Ale dla operatorów
Programowanie w C++ Wykład 11. Katarzyna Grzelak. 13 maja K.Grzelak (Wykład 11) Programowanie w C++ 1 / 30
Programowanie w C++ Wykład 11 Katarzyna Grzelak 13 maja 2019 K.Grzelak (Wykład 11) Programowanie w C++ 1 / 30 Klasy cd K.Grzelak (Wykład 11) Programowanie w C++ 2 / 30 Klasy - powtórzenie Klasy typy definiowane
Programowanie obiektowe C++
Programowanie obiektowe C++ Programowanie zorientowane obiektowo Wykład 4 Witold Dyrka witold.dyrka@pwr.wroc.pl 5/12/2011 Prawa autorskie itp. Niektóre slajdy do tego wykładu powstało w oparciu o: książkę
Programowanie w C++ Wykład 12. Katarzyna Grzelak. 28 maja K.Grzelak (Wykład 12) Programowanie w C++ 1 / 27
Programowanie w C++ Wykład 12 Katarzyna Grzelak 28 maja 2018 K.Grzelak (Wykład 12) Programowanie w C++ 1 / 27 Klasy cd K.Grzelak (Wykład 12) Programowanie w C++ 2 / 27 Klasy - powtórzenie Klasy typy definiowane
C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy WSKAŹNIKI KLASOWE
WSKAŹNIKI KLASOWE Wskaźniki klasowe Każdy obiekt zajmuje fragment pamięci i wszystkie obiekty tego samego typu zajmują fragmenty pamięci tej samej długości początek miejsca w pamięci zajmowanego przez
Programowanie w C++ Wykład 14. Katarzyna Grzelak. 3 czerwca K.Grzelak (Wykład 14) Programowanie w C++ 1 / 27
Programowanie w C++ Wykład 14 Katarzyna Grzelak 3 czerwca 2019 K.Grzelak (Wykład 14) Programowanie w C++ 1 / 27 Na ostatnim wykładzie: Konstruktor standardowy (domyślny) to taki, który nie ma żadnych argumentów
Języki programowania
Języki programowania Nowoczesne techniki programowania Wykład 4 Witold Dyrka witold.dyrka@pwr.wroc.pl 16-30/11/2011 Prawa autorskie Slajdy do wykładu powstały w oparciu o slajdy Bjarne Stroustrupa do kursu
Podstawy Programowania Obiektowego
Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja
1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami
1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami Celem tych zajęć jest zrozumienie i oswojenie z technikami programowania przy pomocy wskaźników w języku C++. Proszę przeczytać rozdział 8.
PARADYGMATY PROGRAMOWANIA Wykład 3
PARADYGMATY PROGRAMOWANIA Wykład 3 Definiowanie operatorów i ich przeciążanie Przykłady zastosowania operatorów: a) operator podstawienia ( = ) obiektów o złożonej strukturze, b) operatory działania na
PARADYGMATY PROGRAMOWANIA Wykład 4
PARADYGMATY PROGRAMOWANIA Wykład 4 Metody wirtualne i polimorfizm Metoda wirualna - metoda używana w identyczny sposób w całej hierarchii klas. Wybór funkcji, którą należy wykonać po wywołaniu metody wirtualnej
Programowanie Obiektowe i C++
Programowanie Obiektowe i C++ Marcin Benke Instytut Informatyki UW 30.10.2006 Marcin Benke (IIUW) Programowanie Obiektowe i C++ 30.10.2006 85 / 112 Zgodność typów Rozważmy klasy class A { //... }; class
1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?
1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? a) konstruktor b) referencje c) destruktor d) typy 2. Które z poniższych wyrażeń są poprawne dla klasy o nazwie
Przeciążenie (przeładowanie nazw) funkcji
Przeciążenie (przeładowanie nazw) funkcji dla większości języków (w tym C) zasada w programie może być tylko jedna funkcja o danej nazwie kompilator C++ - dopuszcza więcej niż jedną funkcję o tej samej
Przeciążanie operatorów
Instrukcja laboratoryjna nr 4 Programowanie w języku C 2 (C++ poziom zaawansowany) Przeciążanie operatorów dr inż. Wilk-Jakubowski Jacek mgr inż. Lasota Maciej dr inż. Kaczmarek Tomasz Wprowadzenie Oprócz
ROZDZIAŁ 2. Operatory
Bibliografia [1] Jerzy Grębosz, Symfonia C++, Oficyna Kallimach, Kraków, 1999, [2] Jerzy Grębosz, Pasja C++, Oficyna Kallimach, Kraków, 1999, [3] Bjarne Stroustrup, Język C++, WNT, Warszawa, 1997, [4]
Programowanie w C++ Wykład 12. Katarzyna Grzelak. 20 maja K.Grzelak (Wykład 12) Programowanie w C++ 1 / 32
Programowanie w C++ Wykład 12 Katarzyna Grzelak 20 maja 2019 K.Grzelak (Wykład 12) Programowanie w C++ 1 / 32 Klasy - powtórzenie Klasy typy definiowane przez użytkownika Klasy zawieraja dane składowe
Programowanie obiektowe C++
Programowanie obiektowe C++ Programowanie zorientowane obiektowo Wykład 1 Witold Dyrka witold.dyrka@pwr.wroc.pl 8/10/2012 Prawa autorskie itp. Wiele slajdów do tego wykładu powstało w oparciu o: slajdy
Język C++ Różnice między C a C++
Język C++ Różnice między C a C++ Plan wykładu C a C++ Różnice ogólne Typy Deklaracje zmiennych C++ jako rozszerzenie C Domyślne argumenty funkcji Przeciążanie funkcji Referencje Dynamiczny przydział pamięci
Wykład 1. Program przedmiotu. Programowanie Obiektowe (język C++) Literatura. Program przedmiotu c.d.:
Program przedmiotu Programowanie Obiektowe (język C++) Wykład 1. Definiowanie prostych klas. Przykłady. Przypomnienie: typy referencyjne, domyślne wartości argumentów, przeciąŝanie funkcji. Konstruktory,
Programowanie w C++ Wykład 13. Katarzyna Grzelak. 4 czerwca K.Grzelak (Wykład 13) Programowanie w C++ 1 / 26
Programowanie w C++ Wykład 13 Katarzyna Grzelak 4 czerwca 2018 K.Grzelak (Wykład 13) Programowanie w C++ 1 / 26 Klasy - powtórzenie Klasy typy definiowane przez użytkownika Klasy zawieraja dane składowe
Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij.
Programowanie Sobera Jolanta 16.09.2006 Strona 1 z 26 1 Wprowadzenie do programowania 4 2 Pierwsza aplikacja 5 3 Typy danych 6 4 Operatory 9 Strona 2 z 26 5 Instrukcje sterujące 12 6 Podprogramy 15 7 Tablice
Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.
Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Abstrakcja funkcyjna Struktury Klasy hermetyzacja
Każdy z nich posiada swoje parametry. W przypadku silnika może to być moc lub pojemność, w przypadku skrzyni biegów można mówić o skrzyni
Język obiektowy był krokiem ewolucji w programowaniu komputerów. Powstał w wyniku rozwoju języków strukturalnych i zmiany podejścia do problemów informatycznych. Cały otaczający świat składa się z obiektów.
C++ - [4-7] Polimorfizm
Slajd 1 z 14 C++ - [4-7] Polimorfizm Nysa 2004-2013. Autor: Wojciech Galiński. wersja dnia 20 maja 2013 r. Slajd 2 z 14 Polimorfizm i klasa polimorficzna POLIMORFIZM (cytat z Wikipedii) (wielopostaciowość)
Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 4. Karol Tarnowski A-1 p.
Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 4 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Przeciążanie operatorów Funkcje zaprzyjaźnione Na
TEMAT : KLASY DZIEDZICZENIE
TEMAT : KLASY DZIEDZICZENIE Wprowadzenie do dziedziczenia w języku C++ Język C++ możliwa tworzenie nowej klasy (nazywanej klasą pochodną) w oparciu o pewną wcześniej zdefiniowaną klasę (nazywaną klasą
IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi
IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi EGZAMIN PIERWSZY (25 CZERWCA 2013) JĘZYK C++ poprawiam ocenę pozytywną z egzaminu 0 (zakreśl poniżej x) 1. Wśród poniższych wskaż poprawną formę definicji
Operacje wejścia/wyjścia odsłona pierwsza
Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego.
Podstawy Programowania Obiektowego
Podstawy Programowania Obiektowego. Spotkanie 07 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Pojęcie funkcji operatorowej Definicja funkcji operatorowej w klasie Definicja funkcji operatorowej poza klasą
PROE wykład 3 klasa string, przeciążanie funkcji, operatory. dr inż. Jacek Naruniec
PROE wykład 3 klasa string, przeciążanie funkcji, operatory dr inż. Jacek Naruniec Przypomnienie z ostatnich wykładów Konstruktory/destruktory i kolejność ich wywołania w złożonej klasie. Referencja Obiekty
Programowanie 2. Język C++. Wykład 3.
3.1 Programowanie zorientowane obiektowo... 1 3.2 Unie... 2 3.3 Struktury... 3 3.4 Klasy... 4 3.5 Elementy klasy... 5 3.6 Dostęp do elementów klasy... 7 3.7 Wskaźnik this... 10 3.1 Programowanie zorientowane
Wstęp do Programowania 2
Wstęp do Programowania 2 dr Bożena Woźna-Szcześniak bwozna@gmail.com Akademia im. Jana Długosza Wykład 5 W programowaniu obiektowym programista koncentruje się na obiektach. Zadaje sobie pytania typu:
2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne
Tematyka wykładów 1. Wprowadzenie. Klasy cz. 1 - Język C++. Programowanie obiektowe - Klasy i obiekty - Budowa i deklaracja klasy. Prawa dostępu - Pola i funkcje składowe - Konstruktor i destruktor - Tworzenie
Język C++ wykład VII. uzupełnienie notatek: dr Jerzy Białkowski. Programowanie C/C++ Język C++ wykład VII. dr Jarosław Mederski. Spis.
Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 2 3 4 Obiektowość języka C++ ˆ Klasa (rozszerzenie struktury), obiekt instancją klasy, konstruktory i destruktory ˆ Enkapsulacja - kapsułkowanie,
Programowanie obiektowe - Przykładowe zadania egzaminacyjne (2005/2006)
Programowanie obiektowe - Przykładowe zadania egzaminacyjne (2005/2006) Część 1. Teoria Wyjaśnij pojęcia, podaj przykład: klasa obiekt konstruktor destruktor kapsułkowanie (hermetyzacja) wskaźnik this
Przeciążenie operatorów
Przeciążenie operatorów W C++ można przeciążyć większość operatory tak, żeby wykonywali zadania, charakterystyczne dla danej klasy Po przeciążeniu odpowiednich operatorów można posługiwać się obiektami
Instrukcja do pracowni specjalistycznej z przedmiotu. Obiektowe programowanie aplikacji
Politechnika Białostocka Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej Instrukcja do pracowni specjalistycznej z przedmiotu Obiektowe programowanie aplikacji Kod przedmiotu: TS1C410201
Język C++ wykład VIII
Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 2 3 4 Obiektowość języka C++ ˆ Klasa (rozszerzenie struktury), obiekt instancją klasy, konstruktory i destruktory ˆ Enkapsulacja - kapsułkowanie,
Wyliczanie wyrażenia obiekty tymczasowe
Wyliczanie wyrażenia obiekty tymczasowe Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2013 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu
Język C++ wykład VI. uzupełnienie notatek: dr Jerzy Białkowski. Programowanie C/C++ Język C++ wykład VI. dr Jarosław Mederski.
- - uzupełnienie notatek: dr Jerzy Białkowski - - 1-2 - - - 1 #include 2 #include 3 # include 4 using namespace std ; 5 6 class Punkt { 7 8 private : 9 double
Języki i paradygmaty programowania Wykład 2. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18
Dariusz Wardowski dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18 Literatura Języki i paradygmaty programowania Wykład 2 1. C. S. Horstman, G. Cornell, core Java 2 Podstawy, Helion 2003
Programowanie obiektowe, wykład nr 7. Przegląd typów strukturalnych - klasy i obiekty - c.d.
Dr hab. inż. Lucyna Leniowska, prof. UR, Zakład Mechatroniki, Automatyki i Optoelektroniki, IT Programowanie obiektowe, wykład nr 7 Przegląd typów strukturalnych - klasy i obiekty - c.d. Klasa - powtórzenie
Wykład 5: Klasy cz. 3
Programowanie obiektowe Wykład 5: cz. 3 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD - podstawy Konstruktor i destruktor (część I) 2 Konstruktor i destruktor KONSTRUKTOR Dla przykładu
Szablony funkcji i szablony klas
Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2011 Bogdan Kreczmer Niniejszy dokument
Zajęcia nr 4 Programowanie obiektowe konstruktory. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej
Zajęcia nr 4 Programowanie obiektowe konstruktory dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Plan Klasy przypomnienie Konstruktory Destruktor Przeciążanie
Podstawy programowania. Wykład: 8. Wskaźniki. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD
Podstawy programowania Wykład: 8 Wskaźniki 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania w C++ Wskaźniki 2 Podstawy Pojęcie wskaźnika Wskaźnik na zmienną danego
PARADYGMATY PROGRAMOWANIA Wykład 2
PARADYGMATY PROGRAMOWANIA Wykład 2 Definiowanie klas w C++ - ciąg dalszy Lista inicjalizująca konstruktora Przeznaczenie - do inicjalizacji pól klasy z kwalifikatorem const i inicjalizacji obiektów składowych
Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.
Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje 1 dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD programowania w C++ Typy c.d. 2 Typy zmiennych Instrukcja typedef -
Programowanie, część I
11 marca 2010 Kontakt Wstęp Informacje organizacyjne Materiał na ćwiczenia Plan wykładu http://www.fuw.edu.pl/~rwys/prog rwys@fuw.edu.pl tel. 22 55 32 263 Materiał na ćwiczenia Informacje organizacyjne
Programowanie obiektowe C++
Programowanie obiektowe C++ Programowanie zorientowane obiektowo Wykład 3 Witold Dyrka witold.dyrka@pwr.wroc.pl 21/11/2011 Prawa autorskie itp. Wiele slajdów do tego wykładu powstało w oparciu o: slajdy
Referencje do zmiennych i obiektów
Referencje do zmiennych i obiektów Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu
Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska
Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego Iwona Kochaoska Programowanie Obiektowe Programowanie obiektowe (ang. object-oriented programming) - metodyka tworzenia programów komputerowych,
dr inż. Jarosław Forenc
Informatyka 2 Politechnika Białostocka - Wydział Elektryczny semestr III, studia stacjonarne I stopnia Rok akademicki 2015/2016 Pracownia nr 1 (21/23.09.2015) Rok akademicki 2015/2016, Pracownia nr 1 2/22
Dziedziczenie jednobazowe, poliformizm
Dziedziczenie jednobazowe, poliformizm 1. Dziedziczenie jednobazowe 2. Polimorfizm część pierwsza 3. Polimorfizm część druga Zofia Kruczkiewicz, ETE8305_6 1 Dziedziczenie jednobazowe, poliformizm 1. Dziedziczenie
Programowanie komputerowe. Zajęcia 5
Programowanie komputerowe Zajęcia 5 Tablice wielowymiarowe Tablicę dwuwymiarową możemy deklarować statycznie: typ nazwa[rozmiar1][rozmiar2]; Ma ona elementy nazwa[i][j] dla i=0,,rozmiar1-1, j=0,...,rozmiar2-1.
Wykład 8: klasy cz. 4
Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD
Język ludzki kod maszynowy
Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza
Szablony klas, zastosowanie szablonów w programach
Szablony klas, zastosowanie szablonów w programach 1. Szablony klas i funkcji 2. Szablon klasy obsługującej uniwersalną tablicę wskaźników 3. Zastosowanie metody zwracającej przez return referencję do
Wykład 1. Program przedmiotu. Programowanie (język C++) Literatura. Program przedmiotu c.d.:
Program przedmiotu Programowanie (język C++) Wykład 1. Język C a C++. Definiowanie prostych klas. Typy referencyjne. Domyślne wartości argumentów. PrzeciąŜanie funkcji. Konstruktory, destruktory. Definiowanie
PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec
PROE wykład 2 operacje na wskaźnikach dr inż. Jacek Naruniec Zmienne automatyczne i dynamiczne Zmienne automatyczne: dotyczą kontekstu, po jego opuszczeniu są usuwane, łatwiejsze w zarządzaniu od zmiennych
Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:
Zakres laboratorium: definiowanie struktur terminologia obiektowa definiowanie klas funkcje składowe klas programy złożone z wielu plików zadania laboratoryjne Laboratorium nr 12 Temat: Struktury, klasy.
wykład IV uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C, a C++. wykład IV dr Jarosław Mederski Spis Język C++ - wstęp
Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 2 3 4 Historia C++ został zaprojektowany w 1979 przez Bjarne Stroustrupa jako rozszerzenie języka C o obiektowe mechanizmy abstrakcji danych i
Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej
Zajęcia nr 2 Programowanie strukturalne dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Pętla while #include using namespace std; int main ()
Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016
Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,
Programowanie obiektowe Wykład 3. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/21
Dariusz Wardowski dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/21 Przydzielanie pamięci Poniżej przedstawiono w C++ dwie klasy obrazujące sposób rezerwacji pamięci. class Osoba char imie[30];
Wstęp do programowania obiektowego. Przekazywanie parametrów do funkcji w C++ Metody i funkcje operatorowe Strumienie: standardowe, plikowe, napisowe
Wstęp do programowania obiektowego Przekazywanie parametrów do funkcji w C++ Metody i funkcje operatorowe Strumienie: standardowe, plikowe, napisowe 1 PRZEKAZYWANIE PARAMETRÓW DO FUNKCJI W C++ 2 W C++
Programowanie obiektowe Wykład 1. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20
Dariusz Wardowski dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20 O mnie prowadzący wykład: Dariusz Wardowski pokój: A334 dyżur: środa, godz. 10.00 12.00 e-mail: wardd@math.uni.lodz.pl
Programowanie obiektowe i C++ dla matematyków
Programowanie obiektowe i C++ dla matematyków Bartosz Szreder szreder (at) mimuw... 22 XI 2011 Uwaga! Ponieważ już sobie powiedzieliśmy np. o wskaźnikach i referencjach, przez które nie chcemy przegrzebywać
Wykład 2 Składnia języka C# (cz. 1)
Wizualne systemy programowania Wykład 2 Składnia języka C# (cz. 1) 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Budowa projektu 2 Struktura programu
Wprowadzenie do szablonów szablony funkcji
Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2006 2010 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego.
Programowanie Obiektowew języku C++ Zadania L4
Programowanie Obiektowew języku C++ Zadania L4 Mirosław Głowacki 1,2 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej Katedra Informatyki
Programowanie obiektowe, wykład nr 6. Klasy i obiekty
Dr hab. inż. Lucyna Leniowska, prof. UR, Zakład Mechatroniki, Automatyki i Optoelektroniki, IT Programowanie obiektowe, wykład nr 6 Klasy i obiekty W programowaniu strukturalnym rozwój oprogramowania oparto
Programowanie obiektowe język C++
Programowanie obiektowe język C++ Dr inż. Sławomir Samolej D108A, tel: 865 1486, email: ssamolej@prz-rzeszow.pl WWW: ssamolej.prz-rzeszow.pl Podziękowanie: Chcę podziękować dr inż.. Grzegorzowi Hałdasiowi
C++ - polimorfizm. C++ - polimorfizm. C++ - polimorfizm. C++ - polimorfizm. C++ - polimorfizm POLIMORFIZM
POLIMORFIZM Podstawowe pytanie, które nieustannie ma towarzyszyć autorowi programowi: czy gdyby nagle okazało się, że jest więcej... (danych na wejściu, typów danych, czynności, które program ma wykonać,
Wprowadzenie do szablonów szablony funkcji
Wprowadzenie do szablonów szablony funkcji Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2006 2010 Bogdan Kreczmer Niniejszy dokument zawiera materiały do
Wykład 9 2014-06-20 09:37 PP2_W9
Wykład 9 Przykłady programów z wykorzystaniem klas - przykład funkcji operatorowych - obiektowa implementacja listy jednokierunkowej kopiowanie obiektów - klasa "latający napis" Pozycjonowanie w plikach
Wykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej
Wykład I - semestr II Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2015 c Copyright 2015 Janusz Słupik Zaliczenie przedmiotu Do zaliczenia przedmiotu niezbędne jest
Programowanie obiektowe w C++ Wykład 12
Programowanie obiektowe w C++ Wykład 12 dr Lidia Stępień Akademia im. Jana Długosza w Częstochowie L. Stępień (AJD) 1 / 22 Zakresowe pętle for double tab[5] {1.12,2.23,3.33,4.12,5.22 for(double x: tab)
Język C++ zajęcia nr 2
Język C++ zajęcia nr 2 Inicjalizacja Definiowanie obiektu może być połączone z nadaniem mu wartości początkowej za pomocą inicjalizatora, który umieszczany jest po deklaratorze obiektu. W języku C++ inicjalizator
KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany
KLASA UCZEN Napisz deklarację klasy Uczen, w której przechowujemy następujące informacje o uczniu: imię, nazwisko, średnia (pola prywatne), poza tym klasa zawiera metody: konstruktor bezparametrowy (nie
Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Każdy z nich posiada swoje parametry. W przypadku silnika może to być moc lub pojemność, w przypadku skrzyni biegów można mówić o skrzyni
Język obiektowy był krokiem ewolucji w programowaniu komputerów. Powstał w wyniku rozwoju języków strukturalnych i zmiany podejścia do problemów informatycznych. Cały otaczający świat składa się z obiektów.
Wykład 9: Polimorfizm i klasy wirtualne
Programowanie obiektowe Wykład 9: i klasy wirtualne 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD Programowanie obiektowe i metody wirtualne 2 W programowaniu obiektowym polimorfizm
Programowanie komputerowe. Zajęcia 7
Programowanie komputerowe Zajęcia 7 Klasy Klasy to typy danych, które pozwalają na zgromadzenie w jednej zmiennej (obiekcie) zarówno danych jak i operacji związanych z tymi danymi. Obiekt danej klasy może
Materiały do zajęć VII
Spis treści I. Klasy Materiały do zajęć VII II. III. Konstruktor Właściwości i indeksatory Klasy Programowanie obiektowe wiadomości wstępne Paradygmat programowania obiektowego Abstrakcja Hermetyzacja
Do czego służą klasy?
KLASY Dorota Pylak 2 Do czego służą klasy? W programowaniu obiektowym posługujemy się obiektami. Obiekty charakteryzują się: cechami (inaczej - atrybutami lub stanami) operacjami, które na nich można wykonywać
Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD
programowania Wykład: 4 Instrukcje sterujące, operatory 1 programowania w C++ Instrukcje sterujące 2 Pętla for for ( instrukcja_ini ; wyrazenie_warunkowe ; instrukcja_krok ) tresc_petli ; instrukcja_ini
Programowanie Obiektowo Zorientowane w języku C++ Klasy, pola, metody
Programowanie Obiektowo Zorientowane w języku C++ Klasy, pola, metody Mirosław Głowacki 1 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej
Laboratorium 1 - Programowanie proceduralne i obiektowe
Laboratorium 1 - Programowanie proceduralne i obiektowe mgr inż. Kajetan Kurus 4 marca 2014 1 Podstawy teoretyczne 1. Programowanie proceduralne (powtórzenie z poprzedniego semestru) (a) Czym się charakteryzuje?
Wstęp do Programowania 2
Wstęp do Programowania 2 dr Bożena Woźna-Szcześniak bwozna@gmail.com Akademia im. Jana Długosza Wykład 8 Przykład realizowany na wykładzie Klasy StringBad i String. Wstępne pliki załaczone jako źródła.
Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java
Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java Cechy C++ Język ogólnego przeznaczenia Można programować obiektowo i strukturalnie Bardzo wysoka wydajność kodu wynikowego
Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;
Klasy w C++ są bardzo ważnym narzędziem w rękach programisty. Klasy są fundamentem programowania obiektowego. Z pomocą klas będziesz mógł tworzyć lepszy kod, a co najważniejsze będzie on bardzo dobrze
Zaawansowane programowanie w C++ (PCP)
Wykład 9 - powtórzenie. 11 maja 2007 Powtórzenie materiału obiekty automatyczne, statyczne, tymczasowe, dynamiczne dziedziczenie, agregacja polimorfizm, funkcje wirtualne wzorce projektowe (strukturalne,
Lab 9 Podstawy Programowania
Lab 9 Podstawy Programowania (Kaja.Gutowska@cs.put.poznan.pl) Wszystkie kody/fragmenty kodów dostępne w osobnym pliku.txt. Materiały pomocnicze: Wskaźnik to specjalny rodzaj zmiennej, w której zapisany
Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),
Tworzenie obiektów Dostęp do obiektów jest realizowany przez referencje. Obiekty w języku Java są tworzone poprzez użycie słowa kluczowego new. String lan = new String( Lancuch ); Obszary pamięci w których
Podstawy programowania. Wykład: 7. Funkcje Przekazywanie argumentów do funkcji. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD
programowania Wykład: 7 Funkcje Przekazywanie argumentów do funkcji 1 dr Artur Bartoszewski - programowania, sem 1 - WYKŁAD programowania w C++ Funkcje 2 dr Artur Bartoszewski - programowania sem. 1 -