Wprowadzenie do szablonów klas
|
|
- Bartosz Marszałek
- 8 lat temu
- Przeglądów:
Transkrypt
1 Bogdan Kreczmer Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu dotyczącego programowania obiektowego. Jest on udostępniony pod warunkiem wykorzystania wyłącznie do własnych prywatnych potrzeb i może on być kopiowany wyłącznie w całości, razem z niniejszą stroną tytułową.
2 Niniejsza prezentacja została wykonana przy użyciu systemu składu L A TEX oraz stylu beamer, którego autorem jest Till Tantau. Strona domowa projektu Beamer:
3 1 Szablony klas Wprowadzenie 2 Klasy z definicją podtypu Szablon dla klasy z podtypem
4 Szablony klas Szablony klas Wprowadzenie Szablony klas pozwalają na przedstawienie ogólnych pojęć i wzajemnych ich związków. Pozwalają na abstrahowanie od typu poszczególnych atrybutów związanych z danym pojęciem. Pozwalają programiście skoncentrować na ogólnych zależnościach i mechanizmach. Szablony pozwalają na generowanie i optymalizowania już na etapie kompilacji poprzez użycie specyficznych konstrukcji programistycznych. Umożliwiają realizację idei programowania uogólnionego.
5 Szablony klas Szablony klas Wprowadzenie Szablony klas pozwalają na przedstawienie ogólnych pojęć i wzajemnych ich związków. Pozwalają na abstrahowanie od typu poszczególnych atrybutów związanych z danym pojęciem. Pozwalają programiście skoncentrować na ogólnych zależnościach i mechanizmach. Szablony pozwalają na generowanie i optymalizowania już na etapie kompilacji poprzez użycie specyficznych konstrukcji programistycznych. Umożliwiają realizację idei programowania uogólnionego.
6 Szablony klas Szablony klas Wprowadzenie Szablony klas pozwalają na przedstawienie ogólnych pojęć i wzajemnych ich związków. Pozwalają na abstrahowanie od typu poszczególnych atrybutów związanych z danym pojęciem. Pozwalają programiście skoncentrować na ogólnych zależnościach i mechanizmach. Szablony pozwalają na generowanie i optymalizowania już na etapie kompilacji poprzez użycie specyficznych konstrukcji programistycznych. Umożliwiają realizację idei programowania uogólnionego.
7 Szablony klas Szablony klas Wprowadzenie Szablony klas pozwalają na przedstawienie ogólnych pojęć i wzajemnych ich związków. Pozwalają na abstrahowanie od typu poszczególnych atrybutów związanych z danym pojęciem. Pozwalają programiście skoncentrować na ogólnych zależnościach i mechanizmach. Szablony pozwalają na generowanie i optymalizowania już na etapie kompilacji poprzez użycie specyficznych konstrukcji programistycznych. Umożliwiają realizację idei programowania uogólnionego.
8 Szablony klas Szablony klas Wprowadzenie Szablony klas pozwalają na przedstawienie ogólnych pojęć i wzajemnych ich związków. Pozwalają na abstrahowanie od typu poszczególnych atrybutów związanych z danym pojęciem. Pozwalają programiście skoncentrować na ogólnych zależnościach i mechanizmach. Szablony pozwalają na generowanie i optymalizowania już na etapie kompilacji poprzez użycie specyficznych konstrukcji programistycznych. Umożliwiają realizację idei programowania uogólnionego.
9 Problemy z tłumaczeniem template wzorzec szablon
10 Problemy z tłumaczeniem template wzorzec szablon
11 Ogólna postać szablonu template < lista-parametrow-rozdzielonych-przecinkami > class Klasa {
12 Ogólna postać szablonu template < lista-parametrow-rozdzielonych-przecinkami > class Klasa { Dopuszczalne parametry: typ wbudowany lub zdefiniowany przez użytkownika, stała w czasie kompilacji (liczba, wskaźnik, znaki itp.), inny szablon.
13 Ogólna postać szablonu template < lista-parametrow-rozdzielonych-przecinkami > class Klasa { Dopuszczalne parametry: typ wbudowany lub zdefiniowany przez użytkownika, stała w czasie kompilacji (liczba, wskaźnik, znaki itp.), inny szablon.
14 Ogólna postać szablonu template < lista-parametrow-rozdzielonych-przecinkami > class Klasa { Dopuszczalne parametry: typ wbudowany lub zdefiniowany przez użytkownika, stała w czasie kompilacji (liczba, wskaźnik, znaki itp.), inny szablon.
15 Ogólna postać szablonu template < lista-parametrow-rozdzielonych-przecinkami > class Klasa { Dopuszczalne parametry: typ wbudowany lub zdefiniowany przez użytkownika, stała w czasie kompilacji (liczba, wskaźnik, znaki itp.), inny szablon.
16 Przykład szablonu stosu template < typename TYP > class Stos { TYP Tab[ROZ STOSU]; unsigned int Ilosc; public : Stos( ) { Ilosc = 0; } bool Pobierz(TYP& El) { return! Ilosc? false : El = Tab[ Ilosc], true; } bool Poloz(const TYP& El) { return Ilosc >= ROZ STOSU? false : Tab[ Ilosc++] = El, true; } Słowo kluczowe typename sygnalizuje, że parametr szablonu jest typem.
17 Przykład szablonu stosu template < class TYP > class Stos { TYP Tab[ROZ STOSU]; unsigned int Ilosc; public : Stos( ) { Ilosc = 0; } bool Pobierz(TYP& El) { return! Ilosc? false : El = Tab[ Ilosc], true; } bool Poloz(const TYP& El) { return Ilosc >= ROZ STOSU? false : Tab[ Ilosc++] = El, true; }
18 Przykład szablonu stosu template < typename TYP > class Stos { TYP Tab[ROZ STOSU]; unsigned int Ilosc; public : Stos( ) { Ilosc = 0; } bool Pobierz(TYP& El) { return! Ilosc? false : El = Tab[ Ilosc], true; } bool Poloz(const TYP& El) { return Ilosc >= ROZ STOSU? false : Tab[ Ilosc++] = El, true; }
19 Przykład szablonu stosu template < typename TYP > class Stos { TYP Tab[ROZ STOSU]; unsigned int Ilosc; public : Stos( ) { Ilosc = 0; } bool Pobierz(TYP& El) { return! Ilosc? false : El = Tab[ Ilosc], true; } bool Poloz(const TYP& El) { return Ilosc >= ROZ STOSU? false : Tab[ Ilosc++] = El, true; } int main( ) { Stos<float> } St;
20 Przykład szablonu stosu template < typename TYP > class Stos { TYP Tab[ROZ STOSU]; unsigned int Ilosc; public : Stos( ) { Ilosc = 0; } bool Pobierz(TYP& El) { return! Ilosc? false : El = Tab[ Ilosc], true; } bool Poloz(const TYP& El) { return Ilosc >= ROZ STOSU? false : Tab[ Ilosc++] = El, true; } int main( ) { Stos<double[100]> } St;
21 Przykład szablonu stosu template < typename TYP > class Stos { TYP Tab[ROZ STOSU]; unsigned int Ilosc; public : Stos( ) { Ilosc = 0; } bool Pobierz(TYP& El) { return! Ilosc? false : El = Tab[ Ilosc], true; } bool Poloz(const TYP& El) { return Ilosc >= ROZ STOSU? false : Tab[ Ilosc++] = El, true; } int main( ) { Stos<std::string> } St;
22 Przykład szablonu stosu template < typename TYP > class Stos { TYP Tab[ROZ STOSU]; unsigned int Ilosc; public : Stos( ) { Ilosc = 0; } bool Pobierz(TYP& El) { return! Ilosc? false : El = Tab[ Ilosc], true; } bool Poloz(const TYP& El) { return Ilosc >= ROZ STOSU? false : Tab[ Ilosc++] = El, true; } int main( ) { Stos<std::istream> } St;
23 Przykład szablonu stosu template < typename TYP > class Stos { TYP Tab[ROZ STOSU]; unsigned int Ilosc; public : Stos( ) { Ilosc = 0; } bool Pobierz(TYP& El) { return! Ilosc? false : El = Tab[ Ilosc], true; } bool Poloz(const TYP& El) { return Ilosc >= ROZ STOSU? false : Tab[ Ilosc++] = El, true; } int main( ) { Stos<std::istream> } St;
24 Przykład szablonu stosu template < typename TYP > class Stos { TYP Tab[ROZ STOSU]; unsigned int Ilosc; public : Stos( ) { Ilosc = 0; } bool Pobierz(TYP& El) { return! Ilosc? false : El = Tab[ Ilosc], true; } bool Poloz(const TYP& El) { return Ilosc >= ROZ STOSU? false : Tab[ Ilosc++] = El, true; } int main( ) { Stos<std::istream> } St;
25 Przykład szablonu stosu template < typename TYP > class Stos { TYP Tab[ROZ STOSU]; unsigned int Ilosc; public : Stos( ) { Ilosc = 0; } bool Pobierz(TYP& El) { return! Ilosc? false : El = Tab[ Ilosc], true; } bool Poloz(const TYP& El) { return Ilosc >= ROZ STOSU? false : Tab[ Ilosc++] = El, true; } int main( ) { Stos<std::istream > } St;
26 Przykład szablonu stosu template < typename TYP > class Stos { TYP Tab[ROZ STOSU]; unsigned int Ilosc; public : Stos( ) { Ilosc = 0; } bool Pobierz(TYP& El) { return! Ilosc? false : El = Tab[ Ilosc], true; } bool Poloz(const TYP& El) { return Ilosc >= ROZ STOSU? false : Tab[ Ilosc++] = El, true; } int main( ) { Stos<std::istream&> } St;
27 Przykład szablonu stosu template < typename TYP > class Stos { TYP Tab[ROZ STOSU]; unsigned int Ilosc; public : Stos( ) { Ilosc = 0; } bool Pobierz(TYP& El) { return! Ilosc? false : El = Tab[ Ilosc], true; } bool Poloz(const TYP& El) { return Ilosc >= ROZ STOSU? false : Tab[ Ilosc++] = El, true; } int main( ) { Stos<std::istream&> } St;
28 Przykład szablonu stosu template < typename TYP > class Stos { TYP Tab[ROZ STOSU]; unsigned int Ilosc; public : Stos( ) { Ilosc = 0; } bool Pobierz(TYP& El) { return! Ilosc? false : El = Tab[ Ilosc], true; } bool Poloz(const TYP& El) { return Ilosc >= ROZ STOSU? false : Tab[ Ilosc++] = El, true; } int main( ) { Stos< Stos< Stos< char[20] > > > } St;
29 Przykład szablonu stosu template < typename TYP > class Stos { TYP Tab[ROZ STOSU]; unsigned int Ilosc; public : Stos( ) { Ilosc = 0; } bool Pobierz(TYP& El) { return! Ilosc? false : El = Tab[ Ilosc], true; } bool Poloz(const TYP& El) { return Ilosc >= ROZ STOSU? false : Tab[ Ilosc++] = El, true; }
30 Przykład szablonu stosu template < typename TYP, unsigned int Rozmiar > class Stos { TYP Tab[Rozmiar]; unsigned int Ilosc; public : Stos( ) { Ilosc = 0; } bool Pobierz(TYP& El) { return! Ilosc? false : El = Tab[ Ilosc], true; } bool Poloz(const TYP& El) { return Ilosc >= Rozmiar? false : Tab[ Ilosc++] = El, true; }
31 Przykład szablonu stosu template < typename TYP, unsigned int Rozmiar > class Stos { TYP Tab[Rozmiar]; unsigned int Ilosc; public : Stos( ) { Ilosc = 0; } bool Pobierz(TYP& El) { return! Ilosc? false : El = Tab[ Ilosc], true; } bool Poloz(const TYP& El) { return Ilosc >= Rozmiar? false : Tab[ Ilosc++] = El, true; } int main( ) { Stos<float, 100> } St;
32 Przykład szablonu stosu template < typename TYP, unsigned int Rozmiar= 100 > class Stos { TYP Tab[Rozmiar]; unsigned int Ilosc; public : Stos( ) { Ilosc = 0; } bool Pobierz(TYP& El) { return! Ilosc? false : El = Tab[ Ilosc], true; } bool Poloz(const TYP& El) { return Ilosc >= Rozmiar? false : Tab[ Ilosc++] = El, true; } int main( ) { Stos<float, 100> } St;
33 Przykład szablonu stosu template < typename TYP, unsigned int Rozmiar= 100 > class Stos { TYP Tab[Rozmiar]; unsigned int Ilosc; public : Stos( ) { Ilosc = 0; } bool Pobierz(TYP& El) { return! Ilosc? false : El = Tab[ Ilosc], true; } bool Poloz(const TYP& El) { return Ilosc >= Rozmiar? false : Tab[ Ilosc++] = El, true; } int main( ) { Stos<float> } St;
34 Klasa z typem wyliczeniowym class EnkoderRobota { int Stan; public: EnkoderRobota( ): Stan( ) {} int Wez( ) const { return Stan; } void Zmien(int Stan) { Stan = Stan; } Klasy z definicją podtypu Szablon dla klasy z podtypem
35 Klasa z typem wyliczeniowym class EnkoderRobota { int Stan; public: EnkoderRobota( ): Stan( ) {} int Wez( ) const { return Stan; } void Zmien(int Stan) { Stan = Stan; } enum Klasy z definicją podtypu Szablon dla klasy z podtypem Urzadzenie { Naped, Skret, Wiezyczka, Ilosc
36 Klasa z typem wyliczeniowym class EnkoderRobota { int Stan; public: EnkoderRobota( ): Stan( ) {} int Wez( ) const { return Stan; } void Zmien(int Stan) { Stan = Stan; } enum Klasy z definicją podtypu Szablon dla klasy z podtypem Urzadzenie { Naped, Skret, Wiezyczka, Ilosc int main( ) { EnkoderRobota Tab[EnkoderRobota::Ilosc]; Tab[EnkoderRobota::Naped].Zmien(2); }
37 Klasa z typem wyliczeniowym class EnkoderRobota { int Stan; public: EnkoderRobota( ): Stan( ) {} int Wez( ) const { return Stan; } void Zmien(int Stan) { Stan = Stan; } enum Klasy z definicją podtypu Szablon dla klasy z podtypem Urzadzenie { Naped, Skret, Wiezyczka, Ilosc int main( ) { EnkoderRobota Tab[EnkoderRobota::Ilosc]; Tab[EnkoderRobota::Naped].Zmien(2); Tab[10].Zmien(2); }
38 Klasa z typem wyliczeniowym class EnkoderRobota { int Stan; public: EnkoderRobota( ): Stan( ) {} int Wez( ) const { return Stan; } void Zmien(int Stan) { Stan = Stan; } enum Klasy z definicją podtypu Szablon dla klasy z podtypem Urzadzenie { Naped, Skret, Wiezyczka, Ilosc class PotencjometrRobota { int Stan; public: PotencjometrRobota( ): Stan( ) {} int Wez( ) const { return Stan; } void Zmien(int Stan) { Stan = Stan; } enum Urzadzenie { Noga1, Noga2, Noga3, Noga4, Ilosc
39 Synonimy dla nazw typów Klasy z definicją podtypu Szablon dla klasy z podtypem class EnkoderRobota { enum Urzadzenie { Naped, Skret, Wiezyczka, Ilosc class PotencjometrRobota { enum Urzadzenie { Noga1, Noga2, Noga3, Noga4, Ilosc
40 Synonimy dla nazw typów Klasy z definicją podtypu Szablon dla klasy z podtypem class EnkoderRobota { enum Urzadzenie { Naped, Skret, Wiezyczka, Ilosc class PotencjometrRobota { enum Urzadzenie { Noga1, Noga2, Noga3, Noga4, Ilosc int main( ) { StanEnkRob StanEnk; StanPotRob StanPot; } StanEnk.Wez(::Naped); StanPot.Wez(::Noga1);
41 Synonimy dla nazw typów Klasy z definicją podtypu Szablon dla klasy z podtypem class EnkoderRobota { enum Urzadzenie { Naped, Skret, Wiezyczka, Ilosc class PotencjometrRobota { enum Urzadzenie { Noga1, Noga2, Noga3, Noga4, Ilosc int main( ) { StanEnkRob StanEnk; StanPotRob StanPot; } StanEnk.Wez(::Naped); StanPot.Wez(::Noga1); StanPot.Wez(1);
42 Synonimy dla nazw typów Klasy z definicją podtypu Szablon dla klasy z podtypem class EnkoderRobota { enum Urzadzenie { Naped, Skret, Wiezyczka, Ilosc class PotencjometrRobota { enum Urzadzenie { Noga1, Noga2, Noga3, Noga4, Ilosc int main( ) { StanEnkRob StanEnk; StanPotRob StanPot; } StanEnk.Wez(::Naped); StanPot.Wez(::Noga1); StanPot.Wez(1); encoder.cpp: In function int main() : encoder.cpp:62: error: invalid conversion from int to PotencjometrRobota::Urzadzenie
43 Synonimy dla nazw typów Klasy z definicją podtypu Szablon dla klasy z podtypem class EnkoderRobota { enum Urzadzenie { Naped, Skret, Wiezyczka, Ilosc class PotencjometrRobota { enum Urzadzenie { Noga1, Noga2, Noga3, Noga4, Ilosc int main( ) { StanEnkRob StanEnk; StanPotRob StanPot; } StanEnk.Wez(EnkoderRobota::Naped); StanPot.Wez(PotencjometrRobota::Noga1);
44 Synonimy dla nazw typów Klasy z definicją podtypu Szablon dla klasy z podtypem class EnkoderRobota { enum Urzadzenie { Naped, Skret, Wiezyczka, Ilosc typedef PotencjometrRobota typedef EnkoderRobota PotRob; EnkRob; int main( ) { StanEnkRob StanEnk; StanPotRob StanPot; } StanEnk.Wez(EnkoderRobota::Naped); StanPot.Wez(PotencjometrRobota::Noga1);
45 Synonimy dla nazw typów Klasy z definicją podtypu Szablon dla klasy z podtypem class EnkoderRobota { enum Urzadzenie { Naped, Skret, Wiezyczka, Ilosc typedef PotencjometrRobota typedef EnkoderRobota PotRob; EnkRob; int main( ) { StanEnkRob StanEnk; StanPotRob StanPot; } StanEnk.Wez(EnkRob::Naped); StanPot.Wez(PotRob::Noga1);
46 Definicja szablonu Szablony klas Wprowadzenie Klasy z definicją podtypu Szablon dla klasy z podtypem class EnkoderRobota { enum Urzadzenie { Naped, Skret, Wiezyczka, Ilosc class PotencjometrRobota { enum Urzadzenie { Noga1, Noga2, Noga3, Noga4, Ilosc
47 Definicja szablonu Szablony klas Wprowadzenie Klasy z definicją podtypu Szablon dla klasy z podtypem class EnkoderRobota { enum Urzadzenie { Naped, Skret, Wiezyczka, Ilosc template <typename TYP> class Stan { TYP TabCzytn[TYP::Ilosc]; public: int Wez(typename TYP::Urzadzenie Urz) const { return TabCzytn[Urz].Wez( ); } void Zmien(typename TYP::Urzadzenie Urz, int Stan) { return TabCzytn[Urz].Zmien(Stan); }
48 Definicja szablonu Szablony klas Wprowadzenie Klasy z definicją podtypu Szablon dla klasy z podtypem class EnkoderRobota { enum Urzadzenie { Naped, Skret, Wiezyczka, Ilosc template <typename TYP> class Stan { TYP TabCzytn[TYP::Ilosc]; public: int Wez(typename TYP::Urzadzenie Urz) const { return TabCzytn[Urz].Wez( ); } void Zmien(typename TYP::Urzadzenie Urz, int Stan) { return TabCzytn[Urz].Zmien(Stan); }
49 Definicja szablonu Szablony klas Wprowadzenie Klasy z definicją podtypu Szablon dla klasy z podtypem class EnkoderRobota { enum Urzadzenie { Naped, Skret, Wiezyczka, Ilosc template <typename TYP> class Stan { TYP TabCzytn[TYP::Ilosc]; public: int Wez(typename TYP::Urzadzenie Urz) const { return TabCzytn[Urz].Wez( ); } void Zmien(typename TYP::Urzadzenie Urz, int Stan) { return TabCzytn[Urz].Zmien(Stan); }
50 Wykorzystanie szablonu Klasy z definicją podtypu Szablon dla klasy z podtypem class EnkoderRobota { enum Urzadzenie { Naped, Skret, Wiezyczka, Ilosc template <typename TYP> class Stan { TYP TabCzytn[TYP::Ilosc]; public: int Wez(typename TYP::Urzadzenie Urz) const int main() { Stan<EnkoderRobota> StanEnk; } StanEnk.Wez(EnkoderRobota::Naped);
51 Wykorzystanie szablonu Klasy z definicją podtypu Szablon dla klasy z podtypem class EnkoderRobota { enum Urzadzenie { Naped, Skret, Wiezyczka, Ilosc template <typename TYP> class Stan { TYP TabCzytn[TYP::Ilosc]; public: int Wez(typename TYP::Urzadzenie Urz) const int main() { Stan<EnkoderRobota> StanEnk; } StanEnk.Wez(EnkoderRobota::Naped); StanEnk.Wez(1);
52 Wykorzystanie szablonu Klasy z definicją podtypu Szablon dla klasy z podtypem class EnkoderRobota { enum Urzadzenie { Naped, Skret, Wiezyczka, Ilosc template <typename TYP> class Stan { TYP TabCzytn[TYP::Ilosc]; public: int Wez(typename TYP::Urzadzenie Urz) const int main() { Stan<EnkoderRobota> StanEnk; } StanEnk.Wez(EnkoderRobota::Naped); StanEnk.Wez(1); encoder.cpp: In function int main() : encoder.cpp:62: error: invalid conversion from int to PotencjometrRobota::Urzadzenie encoder.cpp:62: error: initializing argument 1 of int Stan<TYP>::Wez(typename TYP::Urzadzenie) const [with TYP = PotencjometrRobota]
53 Synonimy nazw typów po raz drugi Klasy z definicją podtypu Szablon dla klasy z podtypem class EnkoderRobota { enum Urzadzenie { Naped, Skret, Wiezyczka, Ilosc template <typename TYP> class Stan { public: int Wez(typename TYP::Urzadzenie Urz) const int main( ) { Stan<EnkoderRobota>StanEnkRob StanEnk; } StanEnk.Wez(EnkoderRobotaEnkRob::Naped);
54 Synonimy nazw typów po raz drugi Klasy z definicją podtypu Szablon dla klasy z podtypem class EnkoderRobota { enum Urzadzenie { Naped, Skret, Wiezyczka, Ilosc template <typename TYP> class Stan { public: int Wez(typename TYP::Urzadzenie Urz) const typedef Stan<EnkoderRobota> typedef EnkoderRobota StanEnkRob; EnkRob; int main( ) { Stan<EnkoderRobota>StanEnkRob StanEnk; } StanEnk.Wez(EnkoderRobotaEnkRob::Naped);
55 Synonimy nazw typów po raz drugi Klasy z definicją podtypu Szablon dla klasy z podtypem class EnkoderRobota { enum Urzadzenie { Naped, Skret, Wiezyczka, Ilosc template <typename TYP> class Stan { public: int Wez(typename TYP::Urzadzenie Urz) const typedef Stan<EnkoderRobota> typedef EnkoderRobota StanEnkRob; EnkRob; int main( ) { Stan<EnkoderRobota>StanEnkRob StanEnk; } StanEnk.Wez(EnkoderRobotaEnkRob::Naped);
56 Synonimy nazw typów po raz drugi Klasy z definicją podtypu Szablon dla klasy z podtypem class EnkoderRobota { enum Urzadzenie { Naped, Skret, Wiezyczka, Ilosc template <typename TYP> class Stan { public: int Wez(typename TYP::Urzadzenie Urz) const typedef Stan<EnkoderRobota> typedef EnkoderRobota int main( ) { StanEnkRob StanEnk; StanEnkRob; EnkRob; } StanEnk.Wez(EnkRob::Naped);
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
Bardziej szczegółowoQt sygnały i sloty. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Wydział Elektroniki Politechnika Wrocławska
Qt sygnały i sloty Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Katedra Cybernetyki i Robotyki Wydział Elektroniki Politechnika Wrocławska Kurs: Copyright c 2018 Bogdan Kreczmer Niniejszy dokument zawiera
Bardziej szczegółowoWartości domyślne, szablony funkcji i 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 2012 Bogdan Kreczmer Niniejszy dokument
Bardziej szczegółowoWprowadzenie 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
Bardziej szczegółowoPraca z aplikacją designer
Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2014 Bogdan Kreczmer Niniejszy dokument
Bardziej szczegółowoWprowadzenie 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.
Bardziej szczegółowoSchemat konstrukcja pliku Makefile
Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2008 Bogdan Kreczmer Niniejszy dokument
Bardziej szczegółowoQt sygnały i designer
Qt sygnały i designer Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2015 Bogdan
Bardziej szczegółowoPrzestrzenie nazw. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Politechnika Wrocławska
Bogdan Kreczmer bogdan.kreczmer@pwr.edu.pl Katedra Cybernetyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2018 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu dotyczącego programowania
Bardziej szczegółowoDalmierze optyczne. Bogdan Kreczmer. bogdan.kreczmer@pwr.wroc.pl
Dalmierze optyczne Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2013 Bogdan Kreczmer
Bardziej szczegółowoWartości domyślne, przeciażenia funkcji
Wartości domyślne, przeciażenia funkcji Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego.
Bardziej szczegółowoWprowadzenie do UML, przykład użycia kolizja
Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2012 Bogdan Kreczmer Niniejszy dokument
Bardziej szczegółowoWartości domyślne, przeciażenia funkcji
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.
Bardziej szczegółowoPola i metody statyczne
Pola i metody statyczne Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2009 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania
Bardziej szczegółowoWyjątki. Wyjątki. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Politechnika Wrocławska
Bogdan Kreczmer bogdan.kreczmer@pwr.edu.pl Katedra Cybernetyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2018 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu dotyczącego programowania
Bardziej szczegółowoPrzesłanianie nazw, przestrzenie nazw
Przesłanianie nazw, przestrzenie nazw Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2013 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu
Bardziej szczegółowoHermetyzacja oraz pola i metody statyczne
Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2010 Bogdan Kreczmer Niniejszy dokument
Bardziej szczegółowoDariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki int getmax (int a, int b) { return (a > b? a : b); float getmax (float a, float b) { return (a > b? a : b); long getmax (long a, long b)
Bardziej szczegółowoWyliczanie 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
Bardziej szczegółowoCzujniki PSD i dalmierze triangulacyjne
Czujniki PSD i dalmierze triangulacyjne Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Katedra Cybernetyki i Robotyki Wydziału Elektroniki Politechniki Wrocławskiej Kurs: Copyright c 2015 Bogdan Kreczmer
Bardziej szczegółowoDiagramy UML, przykład problemu kolizji
Bogdan Kreczmer bogdan.kreczmer@pwr.edu.pl Katedra Cybernetyki i Robotyki Wydział Elektroniki Politechnika Wrocławska Kurs: Copyright c 2015 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu
Bardziej szczegółowoReferencje 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
Bardziej szczegółowoSzablony. Szablony funkcji
Szablony Szablony sa mechanizmem ponownego wykorzystania kodu (reuse) W przypadku funkcji ponownie wykorzystany jest algorytm W przypadku klas ponownie wykorzystane sa wszystkie skladowe Deklaracja szablonu
Bardziej szczegółowoZasoby, pliki graficzne
Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Katedra Cybernetyki i Robotyki Wydziału Elektroniki Politechnika Wrocławska Kurs: Copyright c 2017 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu
Bardziej szczegółowoTypy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1
Typy złożone Struktury, pola bitowe i unie. Programowanie Proceduralne 1 Typy podstawowe Typy całkowite: char short int long Typy zmiennopozycyjne float double Modyfikatory : unsigned, signed Typ wskaźnikowy
Bardziej szczegółowoSzablon klasy std::list
Szablon klasy std::list 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
Bardziej szczegółowoProgramowanie 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
Bardziej szczegółowoPapyrus. Papyrus. Katedra Cybernetyki i Robotyki Politechnika Wrocławska
Katedra Cybernetyki i Robotyki Politechnika Wrocławska Kurs: Zaawansowane metody programowania Copyright c 2014 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu dotyczącego programowania
Bardziej szczegółowoCzujniki PSD i dalmierze triangulacyjne
Czujniki PSD i dalmierze triangulacyjne Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Katedra Cybernetyki i Robotyki Wydziału Elektroniki Politechniki Wrocławskiej Kurs: Copyright c 2016 Bogdan Kreczmer
Bardziej szczegółowoSzablon klasy std::vector
Szablon klasy std::vector 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
Bardziej szczegółowoStyle programowania - krótki przeglad
Style programowania - krótki przeglad Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego.
Bardziej szczegółowoWykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik
Wykład VII Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Kompilacja Kompilator C program do tłumaczenia kodu źródłowego na język maszynowy. Preprocesor
Bardziej szczegółowoOperacje 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.
Bardziej szczegółowoProgramowanie w języku C++
Programowanie w języku C++ Część dziewiąta Autor Roman Simiński Kontakt siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów nie zastąpi
Bardziej szczegółowoWstęp do wiadomości teoretycznych (nie, nie jest to masło maślane ani wstęp, wstępów proszę cierpliwie czytać)
Języki i Paradygmaty Programowania Laboratorium 1 Obiekty i klasy C++ Wstęp do wiadomości teoretycznych (nie, nie jest to masło maślane ani wstęp, wstępów proszę cierpliwie czytać) UWAGA! Umiejętność tworzenia
Bardziej szczegółowoKonstruktor kopiujacy
Konstruktor kopiujacy Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego. Jest on udostępniony
Bardziej szczegółowoSzablony funkcji i klas (templates)
Instrukcja laboratoryjna nr 3 Programowanie w języku C 2 (C++ poziom zaawansowany) Szablony funkcji i klas (templates) dr inż. Jacek Wilk-Jakubowski mgr inż. Maciej Lasota dr inż. Tomasz Kaczmarek Wstęp
Bardziej szczegółowoKurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016
Wykład 9 28 kwiecień 2016 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa
Bardziej szczegółowoOperacje wejścia/wyjścia (odsłona druga) - pliki
Operacje wejścia/wyjścia (odsłona druga) - pliki 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
Bardziej szczegółowoProjektowanie klas c.d. Projektowanie klas przykład
Projektowanie klas c.d. ogólne wskazówki dotyczące projektowania klas: o wyodrębnienie klasy odpowiedź na potrzeby życia (obsługa rozwiązania konkretnego problemu) o zwykle nie uda się utworzyć idealnej
Bardziej szczegółowoAlgorytmy i Struktury Danych. Anna Paszyńska
Algorytmy i Struktury Danych Anna Paszyńska Tablica dynamiczna szablon Array Zbiory Zbiory template class Container {public: virtual ~Container() { }; virtual int Count() const = 0;
Bardziej szczegółowoOpenGL oświetlenie. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Wydziału Elektroniki Politechnika Wrocławska
OpenGL oświetlenie Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Katedra Cybernetyki i Robotyki Wydziału Elektroniki Politechnika Wrocławska Kurs: Copyright c 2017 Bogdan Kreczmer Niniejszy dokument zawiera
Bardziej szczegółowoZaawansowane programowanie w języku C++ Funkcje uogólnione - wzorce
Zaawansowane programowanie w języku C++ Funkcje uogólnione - wzorce Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka
Bardziej szczegółowoWeryfikatory, zasoby graficzne
, zasoby graficzne Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Katedra Cybernetyki i Robotyki Wydziału Elektroniki Politechnika Wrocławska Kurs: Copyright c 2019 Bogdan Kreczmer Niniejszy dokument zawiera
Bardziej szczegółowoStandard C++0x (C++1x?) Marcin Świderski
Standard C++0x (C++1x?) Marcin Świderski sfider@students.mimuw.edu.pl O czym będzie mowa? Wytyczne komitetu standaryzacyjnego Rozszerzenia języka Rozszerzenia języka szablony Rozszerzenia biblioteki standardowej
Bardziej szczegółowoRzutowanie i konwersje
Rzutowanie i konwersje Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2013 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania
Bardziej szczegółowoMETODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się
Bardziej szczegółowoIdentyfikacje typu na etapie. wykonania (RTTI)
Identyfikacje typu na etapie (Run Time Type Identification) wykonania (RTTI) Może powstać taka sytuacje, gdy w trakcie kompilacji typ obiektu nie jest znany. C++ implementuje polimorfizm poprzez hierarchie
Bardziej szczegółowoProgramowanie Procedurale
Programowanie Procedurale Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 6 Bożena Woźna-Szcześniak (AJD) Programowanie Procedurale Wykład 6 1 / 27 Zbiór ctime zawiera deklarcję
Bardziej szczegółowoAlgorytmy i struktury danych. wykład 1
Plan całego wykładu:. Pojęcie algorytmu, projektowanie wstępujące i zstępujące, rekurencja. Klasy algorytmów. Poprawność algorytmu, złożoność obliczeniowa. Wskaźniki, dynamiczne struktury danych: listy,
Bardziej szczegółowoZaawansowane programowanie w C++ (PCP)
Zaawansowane programowanie w C++ (PCP) Wykład 6 - szablony. dr inż. Robert Nowak - p. 1/15 Kolekcje i algorytmy» Deklaracja szablonu y Pojęcia niezależne od typu: kolekcje (np. listy) algorytmy (np. znajdowania
Bardziej szczegółowoWstę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 4 Funkcje przeciażone - Idea Przeciażanie funkcji (polimorfizm funkcji), to kolejna nowość w języku
Bardziej szczegółowoInterfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej
Programowanie obiektowe Interfejsy Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Interfejsy Autor: Paweł Rogaliński Instytut Informatyki,
Bardziej szczegółowoWstę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:
Bardziej szczegółowoObiekty i metody stałe
Obiekty i metody stałe 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
Bardziej szczegółowoStyle programowania - krótki przeglad
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.
Bardziej szczegółowoSun RPC/XDR 10. listopada Dariusz Wawrzyniak (IIPP) 1
Remote Procedure Call external Data Representation trójwymiarowa identyfikacja procedur (nr programu, nr wersji, nr procedury) protokół RPC oparty na protokołach warstwy transportowej stosu TCP/IP (TCP
Bardziej szczegółowoProgramowanie obiektowe. Wykład 5. C++: szablony
Programowanie obiektowe Wykład 5. C++: szablony Szablony Szablony to technika realizacji polimorfizmu na innym poziomie niż za pomocą funkcji wirtualnych i dziedziczenia. Mechanizm ten można rozumieć jako
Bardziej szczegółowoAbstrakcyjny typ danych
Abstrakcyjny typ danych Abstrakcyjny Typ Danych (abstract data type-adt): zbiór wartości wraz z powiązanymi z nimi operacjami; operacje są zdefiniowane w sposób niezależny od implementacji; operacje są
Bardziej szczegółowoLista dwukierunkowa - przykład implementacji destruktorów
Lista dwukierunkowa - przykład implementacji destruktorów Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2006 2008 Bogdan Kreczmer Niniejszy dokument zawiera
Bardziej szczegółowoC++ język nie dla ludzi o słabych nerwach. Małgorzata Bieńkowska
C++ język nie dla ludzi o słabych nerwach Małgorzata Bieńkowska malgorzata.bienkowska@gmail.com 9LivesData HYDRAStor Dla NEC Japan od ponad 10 lat 1,5 miliona linii kodu większość rozwijana w Warszawie
Bardziej szczegółowoTechnologie programowania Wykład 4. Szablony funkcji Notes. Szablony funkcji Notes. Szablony funkcji Notes. Notes. Przemek Błaśkiewicz.
Technologie programowania Wykład 4 Przemek Błaśkiewicz 9 maja 2017 1 / 54 Szablony funkcji Często w programach zachodzi potrzeba użycia funkcji, które co do mechanizmu działaja tak samo, ale różnia się
Bardziej szczegółowoProgramowanie 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
Bardziej szczegółowoAplikacja po polsku. Bogdan Kreczmer. ZPCiR ICT PWr pokój 307 budynek C3.
Aplikacja po polsku Bogdan Kreczmer ZPCiR ICT PWr pokój 307 budynek C3 kreczmer@ict.pwr.wroc.pl Copyright c 2004 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat wizualizacji danych
Bardziej szczegółowoWykł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
Bardziej szczegółowoModelowanie numeryczne w fizyce atmosfery Ćwiczenia 3
Modelowanie numeryczne w fizyce atmosfery Sylwester Arabas (ćwiczenia do wykładu dr. hab. inż. Lecha Łobockiego) Instytut Geofizyki, Wydział Fizyki Uniwersytetu Warszawskiego 3. listopada 2011 r. Schemat
Bardziej szczegółowoPreprocesor języka C
języka C Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2012 Bogdan Kreczmer Niniejszy
Bardziej szczegółowoKurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019
Wykład 3 22 marca 2019 Klasy wewnętrzne Klasa wewnętrzna class A {... class B {... }... } Klasa B jest klasa wewnętrzna w klasie A. Klasa A jest klasa otaczajac a klasy B. Klasy wewnętrzne Właściwości
Bardziej szczegółowoKlasa, metody, rozwijanie w linii
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.
Bardziej szczegółowoAutomatyczne tworzenie operatora = Integer2& operator=(const Integer& prawy) {
Przeciążanie a dziedziczenie class Integer2: public Integer Operatory, z wyjątkiem operatora przypisania są automatycznie dziedziczone w klasach pochodnych. Integer2(int i): Integer(i) Automatyczne tworzenie
Bardziej szczegółowoAutomatyczne tworzenie operatora = Integer2& operator=(const Integer& prawy) {
Przeciążanie operatorów [] Przykład: klasa reprezentująca typ tablicowy. Obiekt ma reprezentować tablicę, do której można się odwoływać intuicyjnie, np. Tab[i] Ma być też dostępnych kilka innych metod
Bardziej szczegółowoROZDZIAŁ 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]
Bardziej szczegółowoFUNKCJE WZORCOWE. Wykład 10. Programowanie Obiektowe (język C++) Funkcje wzorcowe wprowadzenie (2) Funkcje wzorcowe wprowadzenie (1)
Programowanie Obiektowe (język C++) Wykład 10. FUNKCJE WZORCOWE Funkcje wzorcowe wprowadzenie (1) Funkcje wzorcowe wprowadzenie (2) int max ( int a, int b ) return a>b? a : b; Aby mieć analogiczną funkcję
Bardziej szczegółowoSzablony, wybrane elementy biblioteki STL
Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Katedra Cybernetyki i Robotyki Wydziału Elektroniki Politechnika Wrocławska Kurs: Copyright c 2016 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu
Bardziej szczegółowoProgramowanie Obiektowew języku C++ Zadania L8
Programowanie Obiektowew języku C++ Zadania L8 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
Bardziej szczegółowoPrzykład implementacji przeciażeń operatorów problem kolizji
Przykład implementacji przeciażeń operatorów problem kolizji Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera
Bardziej szczegółowoProgramowanie generyczne w C++
Bardzo szablonowa prezentacja Zak lad Metod Obliczeniowych Chemii UJ 1 wrzesnia 2005 1 2 3 4 Co to jest? Przyk lad Zastosowania 5 S lowniczek Plan Programowanie generyczne Polega na mo_zliwosci deniowania
Bardziej szczegółowoPodstawy Programowania
Podstawy Programowania dr Elżbieta Gawrońska gawronska@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej dr Elżbieta Gawrońska (ICIS) Podstawy Programowania 11 1 / 18 Plan wykładu 1 Typ wyliczeniowy
Bardziej szczegółowoSun RPC/XDR. Dariusz Wawrzyniak 1
Remote Procedure Call external Data Representation trójwymiarowa identyfikacja procedur (nr programu, nr wersji, nr procedury) protokół RPC oparty na protokołach warstwy transportowej stosu TCP/IP (TCP
Bardziej szczegółowoParadygmaty programowania. Paradygmaty programowania
Paradygmaty programowania Paradygmaty programowania Dr inż. Andrzej Grosser Cz estochowa, 2013 2 Spis treści 1. Zadanie 2 5 1.1. Wprowadzenie.................................. 5 1.2. Wskazówki do zadania..............................
Bardziej szczegółowoexternal Data Representation
Remote Procedure Call external Data Representation Opis standardu RFC 1014 Kanoniczna reprezentacja danych oparta na formacie IEEE Deklaratywny język opisu struktur danych (zbliżony do języka C) Koncepcja
Bardziej szczegółowoEfekty uboczne błędów
Obsługa wyjątków Efekty uboczne błędów Fragment kodu programu jest bezpieczny (ang. exception-safe) jeżeli błędy, które wystąpią w trakcie przetwarzania tego kodu nie będą powodowały niepożądanych efektów
Bardziej szczegółowoexternal Data Representation
Remote Procedure Call external Data Representation Dariusz Wawrzyniak (IIPP) 1 trójwymiarowa identyfikacja procedur (nr programu, nr wersji, nr procedury) protokół RPC oparty na protokołach warstwy transportowej
Bardziej szczegółowoZaawansowane programowanie w języku C++ Przeciążanie operatorów
Zaawansowane programowanie w języku C++ Przeciążanie operatorów Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka
Bardziej szczegółowoPodstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD
programowania Wykład: 5 Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD programowania w C++ Instrukcje sterujące 2 dr Artur Bartoszewski
Bardziej szczegółowoKlasa, metody, rozwijanie w linii
Klasa, metody, rozwijanie w linii 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
Bardziej szczegółowoMateriały. Języki programowania II (Java+AVR-GCC) Literatura
Języki programowania II (Java+AVR-GCC) http://abm.p.lodz.pl dr inż. Michał Ludwicki Literatura Materiały Mikrokontrolery AVR Język C Podstawy programowania Mirosław Kardaś, Atnel, Szczecin, 2011. Specyfikacja
Bardziej szczegółowoAutomatyczne tworzenie operatora = Integer2& operator=(const Integer& prawy) { zdefiniuje. Integer::operator=(ri);
Przeciążanie operatorów [] Przykład: klasa reprezentująca typ tablicowy. Obiekt ma reprezentować tablicę, do której można się odwoływać intuicyjnie, np. Tab[i] Ma być też dostępnych kilka innych metod
Bardziej szczegółowoPodstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.
M. Trzebiński C++ 1/14 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IVedycja,2016r. IFJ PAN Przygotowanie środowiska pracy Niniejsza
Bardziej szczegółowoSzablony 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
Bardziej szczegółowoProgramowanie komputerowe. Zajęcia 4
Programowanie komputerowe Zajęcia 4 Typ logiczny Wartości logiczne są reprezentowane przez typ bool. Typ bool posiada tylko dwie wartości: true i false. Zamiast wartości logicznych można używać wartości
Bardziej szczegółowoTablice, funkcje - wprowadzenie
Tablice, funkcje - wprowadzenie Przemysław Gawroński D-10, p. 234 Wykład 5 25 marca 2019 (Wykład 5) Tablice, funkcje - wprowadzenie 25 marca 2019 1 / 12 Outline 1 Tablice jednowymiarowe 2 Funkcje (Wykład
Bardziej szczegółowoZaawansowane programowanie w języku C++ Zarządzanie pamięcią w C++
Zaawansowane programowanie w języku C++ Zarządzanie pamięcią w C++ Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka
Bardziej szczegółowoKLASA 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
Bardziej szczegółowoWykład II. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej
Wykład II - semestr II Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2015 c Copyright 2015 Janusz Słupik Operacje dyskowe - zapis do pliku #include #include
Bardziej szczegółowoProgramowanie 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
Bardziej szczegółowoSignals + Threads: Qt vs. Boost
Signals + Threads: Qt vs. Boost Adam Bujalski 2014-04-01 Adam Bujalski Signals + Threads: Qt vs. Boost 2014-04-01 1 / 22 Spis Treści 1 2 Wątki 3 Qt::QueuedConnection w boost Adam Bujalski Signals + Threads:
Bardziej szczegółowoDziedziczenie i poliformizm
Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Katedra Cybernetyki i Robotyki Wydziału Elektroniki Politechnika Wrocławska Kurs: Copyright c 2016 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu
Bardziej szczegółowoJę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
Bardziej szczegółowo