C++ jest obecnie wiodącym językiem programowania obiektowego. Jego podstawowymi zaletami w stosunku do innych języków obiektowych jest wysoka efektywność i uniwersalność. Stosowany jest do tworzenia komercyjnego oprogramowania oraz efektywnych rozwiązań złożonych problemów.
Książka krok po kroku omawia wszystkie właściwości języka i wyjaśnia sposoby ich praktycznego użycia. Przedstawione przykłady programów nie są zbyt skomplikowane, by nie odrywać Twojej uwagi od omawianych zagadnień, ale nie są też sztucznie uproszczone. Kluczowym założeniem języka C++ jest programowanie z wykorzystaniem szablonów, które umożliwiają tworzenie rozwiązań o wysokim poziomie ogólności - na przykład implementację polimorfizmu. Nicolai Josuttis omawia możliwość łączenia szablonów z programowaniem obiektowym, która decyduje o potężnych możliwościach języka C++ jako narzędzia tworzenia wydajnych programów. W tym zakresie książka wykracza daleko poza podstawy.
* Wprowadzenie do C++ i programowania obiektowego
* Podstawowe pojęcia języka C++
* Programowanie klas
* Dziedziczenie i polimorfizm
* Składowe dynamiczne i statyczne
* Szablony języka C++
* Szczegółowe omówienie standardowej biblioteki wejścia-wyjścia
Książka ta jest idealnym podręcznikiem umożliwiającym studiowanie języka C++ w domowym zaciszu. Prezentuje ona zagadnienia podstawowe, ale w wielu przypadkach przekracza je dostarczając prawdziwie profesjonalnej wiedzy.
Wyczerpujący, szczegółowy, praktyczny i aktualny podręcznik programowania w języku C++
Naucz się języka C++ w najlepszy sposób:
poznając go z punktu widzenia inżynierii programowania
* Demonstruje praktyczne techniki stosowane przez zawodowych programistów
* Zawiera poprawny, gruntownie przetestowany przykładowy kod źródłowy programów oraz przykłady zaczerpnięte z praktyki
* Skoncentrowana na nowoczesnych technologiach, które muszą poznać programiści
* Zawiera rady profesjonalistów, które pozwolą czytelnikowi tworzyć najlepsze programy
Książka Wiktora Shterna zatytułowana "C++. Inżynieria programowania" stosuje wyjątkowy sposób nauki języka C++ przeznaczony dla programistów mających doświadczenie w dowolnym języku programowania: prezentuje możliwość zastosowania w C++ najlepszych technik programistycznych oraz metodologii inżynierii programowania. Nawet jeżeli już wcześniej wykorzystywałeś język C++, ta wyczerpująca książka przedstawi sposób tworzenia poprawniejszego kodu, łatwiejszego do utrzymania i modyfikacji.
Książka niniejsza uczy zasad programowania obiektowego przed samą nauką języka, co pozwala wykorzystać wszystkie zalety OOP do tworzenia poprawnych aplikacji. Udoskonalisz znajomość kluczowych składników standardu ANSI/ISO C++ rozpatrywanych z punktu widzenia inżyniera: klas, metod, modyfikatorów const, dynamicznego zarządzania pamięcią, złożeń klas, dziedziczenia, polimorfizmu, operacji wejścia-wyjścia i wielu innych. Jeżeli pragniesz tworzyć w języku C++ najlepsze programy, musisz projektować, myśleć i programować stosując najlepsze obecnie praktyki inżynierii programowania. Lektura książki "C++. Inżynieria programowania" pomoże Ci w tym.
Książka "C++. Inżynieria programowania" kładzie nacisk na:
* Prezentację zastosowań zasad inżynierii programowania w programach pisanych w C++
* Tworzenie kodu łatwego do późniejszych modyfikacji
* Praktyczne zrozumienie zasad programowania obiektowego przed nauką samego języka
* Przedstawienie najnowszych cech standardu ANSI/ISO C++
* Zaprezentowanie setek realistycznych przykładów kodu programów
Zakładając znajomość podstaw języka C++ książka ta umożliwia programistom rozwinięcie zaawansowanych umiejętności programowania poprzez stosowanie styli i idiomów języka C++. Struktura książki zorganizowana jest wokół abstrakcji wspieranych przez język C++: abstrakcyjnych typów danych, kombinacji typów w strukturach dziedziczenia, programowania obiektowego i dziedziczenia wielokrotnego. W książce przedstawione zostają także te idiomy, które nie znajdują bezpośredniego wsparcia w języku C++, takie jak wirtualne konstruktory, obiekty prototypów i zaawansowane techniki odzyskiwania nieużytków.
Książka:
* Przedstawia zalety i potencjalne pułapki zaawansowanych technik programowania w języku C++.
* Sposoby efektywnego łączenia abstrakcji języka C++ ilustruje szeregiem krótkich, ale stanowiących wystarczający instruktaż przykładów.
* Dostarcza wielu praktycznych zasad wykorzystania języka C++ do implementacji rezultatów projektowania obiektowego.
* Omawia wszystkie właściwości edycji 3.0 języka C++, w tym zastosowanie szablonów w celu wielokrotnego wykorzystania kodu.
* Przedstawia istotne aspekty rozwoju złożonych systemów, w tym projektowanie bibliotek, obsługę wyjątków i przetwarzanie rozproszone.
Książka ta jest ważnym podręcznikiem dla każdego programisty aplikacji lub programisty systemowego posługującego się językiem C++.
O autorze:
James Coplien pracuje w departamencie związanym z badaniami nad produkcją oprogramowania w firmie AT&T Bell Laboratories. Jest także konsultantem przy dużych projektach wykorzystujących technologie obiektowe.
[więcej...]
Zostań profesjonalnym programistą C#
C# jest uważany przez wielu programistów za najlepszy język stosowany do tworzenia aplikacji dla platformy .NET. Język ten, opracowany w firmie Microsoft, łączy w sobie najbardziej wartościowe cechy C++ i Javy, ścisłą integrację z komponentami .NET, wysoki poziom bezpieczeństwa i ogromne możliwości. Świetnie nadaje się do tworzenia aplikacji sieciowych i bazodanowych przeznaczonych zarówno dla systemu Windows, jak i dla urządzeń przenośnych, takich jak PocketPC. Popularność C# stale rośnie, a nieodpłatne udostępnienie przez firmę Microsoft środowiska programistycznego Visual C# Express Edition sprawiło, że coraz więcej twórców oprogramowania wykorzystuje je w swojej pracy.
Książka "Wstęp do programowania w języku C#" to podręcznik przeznaczony dla tych, którzy chcą poznać ten język od podstaw. Czytając ją, poznasz możliwości C# i platformy .NET. Nauczysz się tworzyć własne aplikacje, korzystając ze środowiska Visual C# Express Edition. W książce znajdziesz omówienie składni i elementów języka C#, wyjaśnienie zasad programowania obiektowego i sposobów realizacji różnych zadań programistycznych. Napiszesz aplikacje dla Windows wykorzystujące biblioteki klas .NET i obsługujące pliki w formacie XML.
* Konstrukcja platformy .NET
* Składnia C#
* Elementy języka
* Programowanie obiektowe
* Obsługa zdarzeń
* Korzystanie z tablic i kolekcji
* Obsługa wyjątków
* Biblioteka Windows Forms
* Stosowanie komponentów .NET
* Operacje na plikach i strumieniach
* Obsługa formatu XML
C++Builder Borland Developer Studio 2006. Kompendium programistyWydawnictwo Helion
Jeden z najnowszych produktów firmy Borland, C++Builder Borland Developer Studio 2006, to połączenie nowoczesnego języka programowania, jakim jest C++, biblioteki komponentów wizualnych, zintegrowanego środowiska programistycznego oraz narzędzi służących do modelowania oprogramowania. Pomimo że zaimplementowana w C++Builder wersja języka C++ nie jest dokładnym odzwierciedleniem standardu ANSI, środowisko to zyskało duże uznanie wśród najlepszych programistów, doceniających jego uniwersalność i stabilność.
Książka "C++Builder Borland Developer Studio 2006. Kompendium programisty" przedstawia zasady programowania w języku C++ z wykorzystaniem narzędzia C++Builder 2006. Opisuje zarówno samo środowisko, jak i poszczególne elementy języka. Dzięki niej nauczysz się korzystać z języka UML używanego do projektowania aplikacji oraz dowiesz się, jak realizować projekty, wykorzystując język C++. Poznasz także nowoczesne metodologie tworzenia oprogramowania za pomocą narzędzi typu RAD.
* Środowisko C++Builder Borland Developer Studio 2006
* Podstawy języka UML
* Korzystanie z biblioteki STL
* Obsługa wyjątków
* Operacje na systemie plików
* Programowanie wielowątkowe
* Komponenty
* Programowanie grafiki
Poznaj potęgę języka C++i zdobądź szczególne umiejętności programowania.
Programowanie w języku C jest czymś więcej niż tylko wprowadzaniem kodu zgodnego z regułami składni; styl i wykrywanie błędów odgrywają równie istotną rolę w procesie tworzenia oprogramowania. Istotnie przyczyniają się do prawidłowego działania programów oraz ułatwiają ich konserwację. W książce omówiono więc nie tylko działanie języka C, ale również cały proces tworzenia programu w tym języku (uwzględniając założenia projektowe programu, kodowanie, metody wykrywania błędów, dokumentację, konserwację oraz aktualizację).
Wbrew powszechnemu przekonaniu większość programistów nie spędza całego swojego czasu przy pisaniu kodu. Poświęcają oni wiele czasu na wprowadzanie zmian i poprawek do aplikacji napisanych przez kogoś innego. Po przeczytaniu tej książki będziesz w stanie tworzyć programy, z którymi inni programiści nie będą musieli staczać bojów. Posiądziesz również umiejętność analizowania kodu napisanego przez innego programistę.
Książka "Język C. Programowanie" omawia także popularne zintegrowane środowiska programistyczne dla systemu Windows (Borland C++, Turbo C++ oraz Microsoft Visual C++) oraz narzędzia programistyczne dla systemu UNIX (cc i gcc). Zawarto w niej również kod programu generującego statystyki, który ma za zadanie zademonstrowanie zagadnień omówionych w książce. Książka jest przeznaczona dla osób, które nie miały dotąd doświadczenia w programowaniu oraz dla programistów znających już język C, a pragnących poprawić swój styl i czytelność tworzonego kodu. Jeśli chcesz sprawnie posługiwać się C, "Język C. Programowanie" to idealny podręcznik dla Ciebie.
Poznanie ruchów figur szachowych to dopiero pierwszy krok w nauce tej gry. Aby ją opanować, trzeba zrozumieć strategie i taktyki, które wpływają na każdy ruch. To samo dotyczy języka C++. Znajomość właściwych strategii pomaga unikać pułapek i pracować o wiele skuteczniej. Rob Murray dzieląc się swoim doświadczeniem pomaga programistom C++ wykonać następny krok w kierunku tworzenia wydajnych aplikacji.
Licznie występujące w całej książce przykłady kodu mają na celu zilustrowanie przydatnych strategii programistycznych i ostrzec przed nabyciem niebezpiecznych nawyków. Aby dodatkowo ułatwić przyswajanie nowych umiejętności, każdy rozdział kończy się listą poruszonych w nim kluczowych zagadnień oraz pytaniami mającymi spowodować przemyślenia i dyskusje.
Książka przedstawia między innymi:
* Tworzenie właściwych abstrakcji dla projektu i przekształcanie abstrakcji w klasy C++
* Mechanizmy dziedziczenia pojedynczego i wielokrotnego
* Metody tworzenia klas
* Szczegółowy opis mechanizmu szablonów
* Wskazówki dotyczące stosowania wyjątków
* Metody tworzenia kodu nadającego się do wielokrotnego wykorzystania
* Przenoszenie programów z języka C do C++
Robert B. Murray jest wicedyrektorem ds. inżynierii oprogramowania w firmie Quantitative Data Systems dostarczającej niestandardowych rozwiązań z zakresu oprogramowania dla czołowych firm. [więcej...]
Poznaj możliwości i mechanizmy C++ stosowane przez profesjonalistów
* Efektywne zarządzanie pamięcią
* Obsługa błędów
* Biblioteki i wzorce projektowe
Język C++ od dawna cieszy się zasłużoną popularnością wśród twórców oprogramowania. Jednak często nawet najbardziej doświadczeni programiści nie wykorzystują wszystkich jego możliwości. W opracowaniach dotyczących tego języka najczęściej omawiana jest składnia i elementy języka, a znacznie rzadziej -- jego praktyczne zastosowania. Brak odniesień do praktyki powoduje nieznajomość wielu niezwykle przydatnych i ułatwiających pracę aspektów C++ i nadmierne eksploatowanie prostych, książkowych konstrukcji.
Książka "C++. Zaawansowane programowanie" to przegląd metod programowania nie omawianych w większości publikacji. Ten przeznaczony dla średnio zaawansowanych programistów podręcznik przedstawia zasady stosowania C++ do rozwiązywania prawdziwych problemów. Opisuje nieznane możliwości znacznie przyspieszające i usprawniające pracę, sposoby tworzenia przenośnego kodu oraz testowania oprogramowania. Książka zawiera również omówienie biblioteki standardowej C++ oraz wzorców projektowych.
* Zasady tworzenia projektów w C++
* Projektowanie obiektowe
* Korzystanie z biblioteki standardowej C++
* Tworzenie kodu przeznaczonego do wielokrotnego zastosowania
* Styl kodowania
* Zarządzanie pamięcią
* Procedury obsługi wyjątków
* Przeciążanie operatorów
* Tworzenie aplikacji wieloplatformowych
* Testowanie kodu i usuwanie błędów
* Programowanie rozproszone
* Stosowanie wzorców projektowych
Naucz się korzystać z C++ tak, jak robią to profesjonaliści.
Szkoła programowania Bruce’a Eckela!
Podczas nauki tworzenia aplikacji w języku C++ towarzyszyć Ci będzie jeden z najlepszych dydaktyków programowania na świecie!
Nauka języka C++ i szczegółowe poznanie jego możliwości to poważne wyzwanie nie tylko dla początkującego, ale również dla zaawansowanego programisty. W książce "Thinking in C++. Edycja polska" Bruce Eckel w doskonały sposób przedstawił podstawowe zagadnienia związane z tym językiem. Jeśli opanowałeś materiał z tej książki, możesz rozpocząć lekturę drugiego tomu.
Następnym krokiem jest -- "Thinking in C++. Edycja polska. Tom II" -- kolejny bestseller Bruce’a Eckela poświęcony językowi C++. Tym razem Bruce w typowy dla siebie, prosty i zrozumiały sposób opisuje zaawansowane aspekty programowania w C++. Dowiesz się, jak korzystać z referencji, przeciążania operatorów, dziedziczenia i obiektów dynamicznych, a także poznasz zagadnienia zaawansowane -- prawidłowe użycie szablonów, wyjątków i wielokrotnego dziedziczenia. Wszystkie tematy opatrzone są ćwiczeniami.
* obsługa wyjątków
* programowanie defensywne
* standardowa biblioteka C++
* strumienie wejścia-wyjścia
* wzorce projektowe
* zaawansowane metody programowania obiektowego
* współbieżność
Kody źródłowe znajdujące się w książce są zgodne z wieloma kompilatorami C++.
O autorach:
Bruce Eckel jest prezesem MindView, Inc., firmy prowadzącej zarówno otwarte jak i zamknięte kursy treningowe; zajmującej się też doradztwem, nadzorem i kontrolą nad projektami związanymi z technologiami obiektowymi i wzorcami projektowymi. [więcej...]
Chuck Allison jest matematykiem, pełniącym obecnie funkcję wykładowcy na wydziale informatyki uniwersytetu stanowego Utah Valley. Do niedawna pełnił funkcję redaktora w magazynie C/C++ Users Journal. [więcej...]
Naucz się języka C++ w najlepszy sposób:
poznając go z punktu widzenia inżynierii programowania
* Demonstruje praktyczne techniki stosowane przez zawodowych programistów
* Zawiera poprawny, gruntownie przetestowany przykładowy kod źródłowy programów oraz przykłady zaczerpnięte z praktyki
* Skoncentrowana na nowoczesnych technologiach, które muszą poznać programiści
* Zawiera rady profesjonalistów, które pozwolą czytelnikowi tworzyć najlepsze programy
Książka Wiktora Shterna zatytułowana "C++. Inżynieria programowania" stosuje wyjątkowy sposób nauki języka C++ przeznaczony dla programistów mających doświadczenie w dowolnym języku programowania: prezentuje możliwość zastosowania w C++ najlepszych technik programistycznych oraz metodologii inżynierii programowania. Nawet jeżeli już wcześniej wykorzystywałeś język C++, ta wyczerpująca książka przedstawi sposób tworzenia poprawniejszego kodu, łatwiejszego do utrzymania i modyfikacji.
Książka niniejsza uczy zasad programowania obiektowego przed samą nauką języka, co pozwala wykorzystać wszystkie zalety OOP do tworzenia poprawnych aplikacji. Udoskonalisz znajomość kluczowych składników standardu ANSI/ISO C++ rozpatrywanych z punktu widzenia inżyniera: klas, metod, modyfikatorów const, dynamicznego zarządzania pamięcią, złożeń klas, dziedziczenia, polimorfizmu, operacji wejścia-wyjścia i wielu innych. Jeżeli pragniesz tworzyć w języku C++ najlepsze programy, musisz projektować, myśleć i programować stosując najlepsze obecnie praktyki inżynierii programowania. Lektura książki "C++. Inżynieria programowania" pomoże Ci w tym.
Książka "C++. Inżynieria programowania" kładzie nacisk na:
* Prezentację zastosowań zasad inżynierii programowania w programach pisanych w C++
* Tworzenie kodu łatwego do późniejszych modyfikacji
* Praktyczne zrozumienie zasad programowania obiektowego przed nauką samego języka
* Przedstawienie najnowszych cech standardu ANSI/ISO C++
* Zaprezentowanie setek realistycznych przykładów kodu programów
Zakładając znajomość podstaw języka C++ książka ta umożliwia programistom rozwinięcie zaawansowanych umiejętności programowania poprzez stosowanie styli i idiomów języka C++. Struktura książki zorganizowana jest wokół abstrakcji wspieranych przez język C++: abstrakcyjnych typów danych, kombinacji typów w strukturach dziedziczenia, programowania obiektowego i dziedziczenia wielokrotnego. W książce przedstawione zostają także te idiomy, które nie znajdują bezpośredniego wsparcia w języku C++, takie jak wirtualne konstruktory, obiekty prototypów i zaawansowane techniki odzyskiwania nieużytków.
Książka:
* Przedstawia zalety i potencjalne pułapki zaawansowanych technik programowania w języku C++.
* Sposoby efektywnego łączenia abstrakcji języka C++ ilustruje szeregiem krótkich, ale stanowiących wystarczający instruktaż przykładów.
* Dostarcza wielu praktycznych zasad wykorzystania języka C++ do implementacji rezultatów projektowania obiektowego.
* Omawia wszystkie właściwości edycji 3.0 języka C++, w tym zastosowanie szablonów w celu wielokrotnego wykorzystania kodu.
* Przedstawia istotne aspekty rozwoju złożonych systemów, w tym projektowanie bibliotek, obsługę wyjątków i przetwarzanie rozproszone.
Książka ta jest ważnym podręcznikiem dla każdego programisty aplikacji lub programisty systemowego posługującego się językiem C++.
O autorze:
James Coplien pracuje w departamencie związanym z badaniami nad produkcją oprogramowania w firmie AT&T Bell Laboratories. Jest także konsultantem przy dużych projektach wykorzystujących technologie obiektowe.
[więcej...]
Zostań profesjonalnym programistą C#
C# jest uważany przez wielu programistów za najlepszy język stosowany do tworzenia aplikacji dla platformy .NET. Język ten, opracowany w firmie Microsoft, łączy w sobie najbardziej wartościowe cechy C++ i Javy, ścisłą integrację z komponentami .NET, wysoki poziom bezpieczeństwa i ogromne możliwości. Świetnie nadaje się do tworzenia aplikacji sieciowych i bazodanowych przeznaczonych zarówno dla systemu Windows, jak i dla urządzeń przenośnych, takich jak PocketPC. Popularność C# stale rośnie, a nieodpłatne udostępnienie przez firmę Microsoft środowiska programistycznego Visual C# Express Edition sprawiło, że coraz więcej twórców oprogramowania wykorzystuje je w swojej pracy.
Książka "Wstęp do programowania w języku C#" to podręcznik przeznaczony dla tych, którzy chcą poznać ten język od podstaw. Czytając ją, poznasz możliwości C# i platformy .NET. Nauczysz się tworzyć własne aplikacje, korzystając ze środowiska Visual C# Express Edition. W książce znajdziesz omówienie składni i elementów języka C#, wyjaśnienie zasad programowania obiektowego i sposobów realizacji różnych zadań programistycznych. Napiszesz aplikacje dla Windows wykorzystujące biblioteki klas .NET i obsługujące pliki w formacie XML.
* Konstrukcja platformy .NET
* Składnia C#
* Elementy języka
* Programowanie obiektowe
* Obsługa zdarzeń
* Korzystanie z tablic i kolekcji
* Obsługa wyjątków
* Biblioteka Windows Forms
* Stosowanie komponentów .NET
* Operacje na plikach i strumieniach
* Obsługa formatu XML
C++Builder Borland Developer Studio 2006. Kompendium programistyWydawnictwo Helion
Jeden z najnowszych produktów firmy Borland, C++Builder Borland Developer Studio 2006, to połączenie nowoczesnego języka programowania, jakim jest C++, biblioteki komponentów wizualnych, zintegrowanego środowiska programistycznego oraz narzędzi służących do modelowania oprogramowania. Pomimo że zaimplementowana w C++Builder wersja języka C++ nie jest dokładnym odzwierciedleniem standardu ANSI, środowisko to zyskało duże uznanie wśród najlepszych programistów, doceniających jego uniwersalność i stabilność.
Książka "C++Builder Borland Developer Studio 2006. Kompendium programisty" przedstawia zasady programowania w języku C++ z wykorzystaniem narzędzia C++Builder 2006. Opisuje zarówno samo środowisko, jak i poszczególne elementy języka. Dzięki niej nauczysz się korzystać z języka UML używanego do projektowania aplikacji oraz dowiesz się, jak realizować projekty, wykorzystując język C++. Poznasz także nowoczesne metodologie tworzenia oprogramowania za pomocą narzędzi typu RAD.
* Środowisko C++Builder Borland Developer Studio 2006
* Podstawy języka UML
* Korzystanie z biblioteki STL
* Obsługa wyjątków
* Operacje na systemie plików
* Programowanie wielowątkowe
* Komponenty
* Programowanie grafiki
Poznaj potęgę języka C++i zdobądź szczególne umiejętności programowania.
Programowanie w języku C jest czymś więcej niż tylko wprowadzaniem kodu zgodnego z regułami składni; styl i wykrywanie błędów odgrywają równie istotną rolę w procesie tworzenia oprogramowania. Istotnie przyczyniają się do prawidłowego działania programów oraz ułatwiają ich konserwację. W książce omówiono więc nie tylko działanie języka C, ale również cały proces tworzenia programu w tym języku (uwzględniając założenia projektowe programu, kodowanie, metody wykrywania błędów, dokumentację, konserwację oraz aktualizację).
Wbrew powszechnemu przekonaniu większość programistów nie spędza całego swojego czasu przy pisaniu kodu. Poświęcają oni wiele czasu na wprowadzanie zmian i poprawek do aplikacji napisanych przez kogoś innego. Po przeczytaniu tej książki będziesz w stanie tworzyć programy, z którymi inni programiści nie będą musieli staczać bojów. Posiądziesz również umiejętność analizowania kodu napisanego przez innego programistę.
Książka "Język C. Programowanie" omawia także popularne zintegrowane środowiska programistyczne dla systemu Windows (Borland C++, Turbo C++ oraz Microsoft Visual C++) oraz narzędzia programistyczne dla systemu UNIX (cc i gcc). Zawarto w niej również kod programu generującego statystyki, który ma za zadanie zademonstrowanie zagadnień omówionych w książce. Książka jest przeznaczona dla osób, które nie miały dotąd doświadczenia w programowaniu oraz dla programistów znających już język C, a pragnących poprawić swój styl i czytelność tworzonego kodu. Jeśli chcesz sprawnie posługiwać się C, "Język C. Programowanie" to idealny podręcznik dla Ciebie.
Poznanie ruchów figur szachowych to dopiero pierwszy krok w nauce tej gry. Aby ją opanować, trzeba zrozumieć strategie i taktyki, które wpływają na każdy ruch. To samo dotyczy języka C++. Znajomość właściwych strategii pomaga unikać pułapek i pracować o wiele skuteczniej. Rob Murray dzieląc się swoim doświadczeniem pomaga programistom C++ wykonać następny krok w kierunku tworzenia wydajnych aplikacji.
Licznie występujące w całej książce przykłady kodu mają na celu zilustrowanie przydatnych strategii programistycznych i ostrzec przed nabyciem niebezpiecznych nawyków. Aby dodatkowo ułatwić przyswajanie nowych umiejętności, każdy rozdział kończy się listą poruszonych w nim kluczowych zagadnień oraz pytaniami mającymi spowodować przemyślenia i dyskusje.
Książka przedstawia między innymi:
* Tworzenie właściwych abstrakcji dla projektu i przekształcanie abstrakcji w klasy C++
* Mechanizmy dziedziczenia pojedynczego i wielokrotnego
* Metody tworzenia klas
* Szczegółowy opis mechanizmu szablonów
* Wskazówki dotyczące stosowania wyjątków
* Metody tworzenia kodu nadającego się do wielokrotnego wykorzystania
* Przenoszenie programów z języka C do C++
Robert B. Murray jest wicedyrektorem ds. inżynierii oprogramowania w firmie Quantitative Data Systems dostarczającej niestandardowych rozwiązań z zakresu oprogramowania dla czołowych firm. [więcej...]
Poznaj możliwości i mechanizmy C++ stosowane przez profesjonalistów
* Efektywne zarządzanie pamięcią
* Obsługa błędów
* Biblioteki i wzorce projektowe
Język C++ od dawna cieszy się zasłużoną popularnością wśród twórców oprogramowania. Jednak często nawet najbardziej doświadczeni programiści nie wykorzystują wszystkich jego możliwości. W opracowaniach dotyczących tego języka najczęściej omawiana jest składnia i elementy języka, a znacznie rzadziej -- jego praktyczne zastosowania. Brak odniesień do praktyki powoduje nieznajomość wielu niezwykle przydatnych i ułatwiających pracę aspektów C++ i nadmierne eksploatowanie prostych, książkowych konstrukcji.
Książka "C++. Zaawansowane programowanie" to przegląd metod programowania nie omawianych w większości publikacji. Ten przeznaczony dla średnio zaawansowanych programistów podręcznik przedstawia zasady stosowania C++ do rozwiązywania prawdziwych problemów. Opisuje nieznane możliwości znacznie przyspieszające i usprawniające pracę, sposoby tworzenia przenośnego kodu oraz testowania oprogramowania. Książka zawiera również omówienie biblioteki standardowej C++ oraz wzorców projektowych.
* Zasady tworzenia projektów w C++
* Projektowanie obiektowe
* Korzystanie z biblioteki standardowej C++
* Tworzenie kodu przeznaczonego do wielokrotnego zastosowania
* Styl kodowania
* Zarządzanie pamięcią
* Procedury obsługi wyjątków
* Przeciążanie operatorów
* Tworzenie aplikacji wieloplatformowych
* Testowanie kodu i usuwanie błędów
* Programowanie rozproszone
* Stosowanie wzorców projektowych
Naucz się korzystać z C++ tak, jak robią to profesjonaliści.
Szkoła programowania Bruce’a Eckela!
Podczas nauki tworzenia aplikacji w języku C++ towarzyszyć Ci będzie jeden z najlepszych dydaktyków programowania na świecie!
Nauka języka C++ i szczegółowe poznanie jego możliwości to poważne wyzwanie nie tylko dla początkującego, ale również dla zaawansowanego programisty. W książce "Thinking in C++. Edycja polska" Bruce Eckel w doskonały sposób przedstawił podstawowe zagadnienia związane z tym językiem. Jeśli opanowałeś materiał z tej książki, możesz rozpocząć lekturę drugiego tomu.
Następnym krokiem jest -- "Thinking in C++. Edycja polska. Tom II" -- kolejny bestseller Bruce’a Eckela poświęcony językowi C++. Tym razem Bruce w typowy dla siebie, prosty i zrozumiały sposób opisuje zaawansowane aspekty programowania w C++. Dowiesz się, jak korzystać z referencji, przeciążania operatorów, dziedziczenia i obiektów dynamicznych, a także poznasz zagadnienia zaawansowane -- prawidłowe użycie szablonów, wyjątków i wielokrotnego dziedziczenia. Wszystkie tematy opatrzone są ćwiczeniami.
* obsługa wyjątków
* programowanie defensywne
* standardowa biblioteka C++
* strumienie wejścia-wyjścia
* wzorce projektowe
* zaawansowane metody programowania obiektowego
* współbieżność
Kody źródłowe znajdujące się w książce są zgodne z wieloma kompilatorami C++.
O autorach:
Bruce Eckel jest prezesem MindView, Inc., firmy prowadzącej zarówno otwarte jak i zamknięte kursy treningowe; zajmującej się też doradztwem, nadzorem i kontrolą nad projektami związanymi z technologiami obiektowymi i wzorcami projektowymi. [więcej...]
Chuck Allison jest matematykiem, pełniącym obecnie funkcję wykładowcy na wydziale informatyki uniwersytetu stanowego Utah Valley. Do niedawna pełnił funkcję redaktora w magazynie C/C++ Users Journal. [więcej...]
C++. 50 efektywnych sposobów na udoskonalenie Twoich programówWydawnictwo Helion
Pierwsze wydanie książki "C++. 50 efektywnych sposobów na udoskonalenie twoich programów" zostało sprzedane w nakładzie 100 000 egzemplarzy i zostało przetłumaczone na cztery języki. Nietrudno zrozumieć, dlaczego tak się stało. Scott Meyers w charakterystyczny dla siebie, praktyczny sposób przedstawił wiedzę typową dla ekspertów -- czynności, które niemal zawsze wykonują lub czynności, których niemal zawsze unikają, by tworzyć prosty, poprawny i efektywny kod. Każda z zawartych w tej książce pięćdziesięciu wskazówek jest streszczeniem metod pisania lepszych programów w C++, zaś odpowiednie rozważania są poparte konkretnymi przykładami. Z myślą o nowym wydaniu, autor opracował od początku wszystkie opisywane w tej książce wskazówki. Wynik jego pracy jest wyjątkowo zgodny z międzynarodowym standardem C++, technologią aktualnych kompilatorów oraz najnowszymi trendami w świecie rzeczywistych aplikacji C++.
Do najważniejszych zalet książki "C++. 50 efektywnych sposobów na udoskonalenie twoich programów" należą:
* Eksperckie porady dotyczące projektowania zorientowanego obiektowo, projektowania klas i właściwego stosowania technik dziedziczenia
* Analiza standardowej biblioteki C++, włącznie z wpływem standardowej biblioteki szablonów oraz klas podobnych do string i vector na strukturę dobrze napisanych programów
* Rozważania na temat najnowszych możliwości języka C++: inicjalizacji stałych wewnątrz klas, przestrzeni nazw oraz szablonów składowych
* Wiedza będąca zwykle w posiadaniu wyłącznie doświadczonych programistów
Książka "C++. 50 efektywnych sposobów na udoskonalenie twoich programów" pozostaje jedną z najważniejszych publikacji dla każdego programisty pracującego z C++.
"C++. Kruczki i fortele w programowaniu" to pomoc dla zawodowych programistów pozwalająca uniknąć lub poprawić dziewięćdziesiąt dziewięć najczęściej popełnianych i najbardziej szkodliwych błędów projektowych i programowych w C++. Jest to też książka, dzięki której można poznać niektóre niestandardowe cechy języka C++ i techniki programistyczne.
W książce omówiono typowe błędy występujące niemalże we wszystkich programach utworzonych w C++. Każdy z nich został starannie opisany, przedstawiono również konsekwencje wynikające z ich pojawienia się w kodzie programu i szczegółowy opis sposobów na ich uniknięcie. "C++. Kruczki i fortele w programowaniu” to książka o tym, jak uniknąć największych zagrożeń związanych z programowaniem w C++. Gotowa i praktyczna wiedza dla programistów, która pozwoli im uzyskać status ekspertów.
Omówione błędy dotyczą:
* Podstaw języka C++
* Składni języka
* Preprocesora
* Konwersji
* Inicjalizacji
* Zarządzania pamięcią i zasobami
* Polimorfizmu
* Projektowania klas
* Projektowania hierarchii
O autorze:
Stephen C. Dewhurst był jednym z pierwszych użytkowników języka C++ w laboratoriach Bell Labs. Ma ponad dwudziestoletnie doświadczenie w stosowaniu C++ do rozwiązywania problemów w takich dziedzinach, jak projektowanie kompilatorów, zabezpieczanie handlu elektronicznego czy telekomunikacja implementowana na bazie urządzeń wbudowanych [więcej...]
C++ wspomaga programowanie w dużej skali, pozwalając na precyzyjne wyrażenie współzależności pomiędzy różnymi częściami programu. Dlatego zakres pojęciowy techniki i stylu programowania w C++ wykracza poza tradycyjne jego pojmowanie w odniesieniu do programowania w małej skali, sprowadzającego się do szczegółów kodowania wiersz po wierszu.
Autor dowodzi, że nieprzemyślane stosowanie złożonych i zaawansowanych technik programowania może prowadzić do tworzenia chaotycznych, niezrozumiałych i mętnych konstrukcji, stanowiących zarazem często rozwiązania mniej efektywne, niż prostsze i zrozumiałe konstrukcje alternatywne. Tom Cargill dokonuje przeredagowania licznych programów, stosując techniki pozwalające na udoskonalenie kodu, począwszy od poprawy spójności, po usunięcie zbędnego, nadmiarowego dziedziczenia. Sposób prezentacji zagadnień rozpoczyna się od przeglądu oryginalnego kodu, który możesz samodzielnie ocenić i przeanalizować, rozważając możliwe alternatywne podejścia do przedstawionych zagadnień programistycznych. Te własne przemyślenia możesz następnie porównać z analizami i wnioskami Autora.
Na podstawie przykładów formułowane są uniwersalne reguły i zasady tworzenia kodu i projektowania programów. Zrozumienie i umiejętne stosowanie tych reguł pomoże profesjonalnym programistom projektować i pisać lepsze programy w C++.
Kolejne rozdziały poświęcone są następującym zagadnieniom:
* Abstrakcja -- pojęcia i modele abstrakcyjne
* Spójność
* Zbędne dziedziczenie
* Funkcje wirtualne
* Przeciążanie operatorów
* Nakładki typu "wrapper"
* Efektywność
Po wprowadzeniu i zilustrowaniu reguł programowania w pierwszych siedmiu rozdziałach, Tom Cargill prezentuje praktyczne studium, w trakcie którego pojedynczy przykładowy program przechodzi kolejne transformacje, które pozwalają poprawić jego ogólną jakość przy jednoczesnym zredukowaniu wielkości kodu. Konkluzję książki stanowi rozdział poświęcony wielokrotnemu dziedziczeniu.
Książka Toma Cargilla to nie tylko cenne źródło wiedzy dla zaawansowanych programistów -- przyda się ona również studentom informatyki i pokrewnych kierunków, zainteresowanych zdobyciem profesjonalnych umiejętności programistycznych.
Doskonałe źródło wiedzy dla wszystkich programistów C#
* Szczegółowe omówienie C# i .NET w wersji 2.0
* Techniki tworzenia i zabezpieczania aplikacji oraz zarządzania kodem źródłowym i wersjami
* Dziesiątki przykładów i kodów źródłowych
Platforma .NET i język C# spowodowały prawdziwą rewolucję na rynku narzędzi programistycznych. Wersja 2.0 przyniosła kilka interesujących rozwiązań, w tym nowe typy danych, komponenty i klasy. Dodatkowe funkcje języka C# pozwalają na przyspieszenie i usprawnienie procesu tworzenia aplikacji oraz jej wdrażania i rozwijania. Dzięki platformie .NET przygotowanie wydajnej, bezpiecznej i łatwej do rozbudowy aplikacji stało się znacznie prostsze i szybsze.
Książka "C# i .NET" przedstawia możliwości platformy .NET i napisanego specjalnie dla niej języka C#. Opisuje elementy platformy, składnię i możliwości języka C# oraz zagadnienia związane z tworzeniem programów za pomocą tych narzędzi. Omawia zasady pisania aplikacji Window Forms i efektywne techniki stosowania klas graficznych z biblioteki GDI+. Charakteryzuje także technologię ADO.NET, metody korzystania z plików XML, przetwarzanie wielowątkowe oraz techniki tworzenia wydajnych aplikacji internetowych w technologii ASP.NET. Szczególną uwagę poświęcono bezpieczeństwu programów i danych oraz skalowaniu i lokalizacji oprogramowania.
* Elementy platformy .NET
* Podstawy języka C#
* Praca z klasami i obiektami w C#
* Przetwarzanie tekstu oraz operacje wejścia i wyjścia
* Tworzenie aplikacji Window Forms
* Korzystanie z biblioteki GDI+
* Połączenia z bazami danych za pomocą ADO.NET
* Aplikacje wielowątkowe oraz rozproszone
* Tworzenie aplikacji internetowych
Jeśli chcesz napisać w C# aplikację dobrej jakości, sięgnij po tę książkę.
Język C++ to najpopularniejszy obecnie język programowania. Jego podstawowe zalety -- przejrzysta składnia, niewielka ilość słów kluczowych i szeroki wachlarz możliwości -- przysporzyły mu wielu zwolenników. Na rynku dostępnych jest wiele książek o programowaniu w C++, jednak większość z nich zawiera sposoby rozwiązywania konkretnych problemów i zadań programistycznych. Niewiele książek koncentruje się na założeniach, na których opiera się programowanie w języku C++.
W książce "Język C++. Koncepcje i techniki programowania" autorzy skoncentrowali się na kluczowych technikach programowania w C++. Jednak nie przedstawiają ich w formie odpowiedzi na pytania "jak to zrobić", ale "dlaczego robimy to tak, a nie inaczej". Opisują szeroki wachlarz idei i technik programowania w C++ począwszy od szczegółowych przykładów kodu, a skończywszy na zasadach i filozofii projektowania.
* Tworzenie klas
* Uchwyty klas
* Zasady projektowania obiektowego
* Szablony i iteratory
* Stosowanie bibliotek
* Projektowanie bibliotek
* Techniki programowania
Dzięki tej książce nauczysz się nie tylko przestrzegać reguł języka C++, ale także myśleć w tym języku podczas pracy nad programem.
O autorach:
Andrew Koenig jest członkiem działu badającego systemy oprogramowania w Shannon Laboratory firmy AT&T oraz redaktorem projektu komitetów standaryzacyjnych języka C++. [więcej...]
Barbara Moo jest konsultantką z dwudziestoletnim doświadczeniem programistycznym, zarządzała projektem pierwszego kompilatora C++. [więcej...]
Bogaty zbiór rozwiązań często spotykanych
problemów programistycznych języka Visual C++
* Poznaj środowisko tworzenia programów w Visual C++ 2005
* Naucz się składni języka Visual C++
* Wykorzystaj możliwości platformy .NET w programach w Visual C++
W kontekście programowania przy użyciu platformy .NET zwykle mówi się o językach Visual Basic i C#. Większość stron internetowych, artykułów i książek dotyczących .NET zawiera kod napisany właśnie w nich. Co mają zrobić programiści, którzy od lat używają C++ i wcale nie chcą rezygnować z jego licznych zalet? Czy jedynym wyborem jest nauka nowego języka lub pozostanie poza światem programowania dla .NET?
Książka "Aplikacje w Visual C++ 2005. Przykłady" zawiera dziesiątki krótkich zadań wraz z rozwiązaniami, dzięki którym błyskawicznie zaczniesz wykorzystywać możliwości platformy .NET w programach pisanych w języku C++. Poznasz środowisko Visual C++ 2005 Express Edition oraz podstawowe składniki aplikacji pisanych w Visual C++. Nauczysz się między innymi obsługiwać dane, przetwarzać pliki, korzystać z wątków oraz łączyć aplikacje z internetem. Dowiesz się także, jak wykonać wiele innych operacji niezbędnych w codziennej pracy programisty.
* Środowisko Visual C++ 2005 Express Edition
* Elementy aplikacji języka Visual C++
* Przetwarzanie i wyświetlanie danych
* Praca z plikami
* Używanie okien dialogowych
* Programy wielowątkowe
* Stosowanie grafiki w aplikacjach
* Tworzenie programów używających sieci
* Składnia języka Visual C++ w pigułce
Przyspiesz wykonywanie codziennych zadań programistycznych,
stosując sprawdzone rozwiązania.
Książka zawiera oficjalną dokumentację języka Visual C# .NET. C# jest jednym z podstawowych języków dostępnych na platformie .NET, łączącym w sobie największe zalety Javy i C++. "Visual C#. NET. Encyklopedia" to doskonałe uzupełnienie dokumentacji dostępnej w formie elektronicznej, niezbędne dla każdego programisty korzystającego z C#. Poza szczegółowym opisem języka, a także kompilatora C#, zawiera ona wiele przykładów gotowych do wykorzystania w konkretnych aplikacjach. Jest to książka, do której będziesz często powracał.
Omówiono:
* Typy
* Modyfikatory
* Polecenia
* Przestrzenie nazw
* Operatory
* Przekształcenia
* Dyrektywy preprocesora
* Atrybuty
* Tworzenie dokumentacji w XML
Podręcznik podstawowego języka programowania dla platformy .NET
* Poznaj elementy języka C#
* Stwórz własną aplikację
* Komunikuj się z bazami danych
Język C# został opracowany przez firmę Microsoft jako podstawowe narzędzie programistyczne dla platformy .NET. C# łączący w sobie najlepsze cechy języków C, C++, Java i Visual Basic doskonale nadaje się do tworzenia aplikacji bazujących na komponentach. Jest prosty, bezpieczny ze względu na typy, oparty na obiektach i komponentach i przygotowany do obsługi mechanizmów komunikacji sieciowej. Za pomocą C# tworzone są nie tylko aplikacje na "duże" komputery, ale także programy dla platformy PocketPC. Popularność C# nadal rośnie, a jego producent stale inwestuje w dalszy rozwój tego narzędzia i platformy .NET.
"C#. Programowanie" to podręcznik przedstawiający tajniki tworzenia aplikacji dla .NET w języku C#. Przeczytasz w nim o podstawowych elementach i strukturach C#, zasadach programowania obiektowego oraz obsłudze wyjątków i błędów. Poznasz sposoby tworzenia aplikacji z wykorzystaniem podstawowych technologii tworzenia aplikacji dla platformy .NET -- ASP.NET, Windows Forms i ADO.NET. Nauczysz się wykorzystywać metadane i łączyć swoje aplikacje z API Windows oraz obiektami COM.
* Typy w języku C#
* Zmienne i stałe
* Instrukcje, operatory i dyrektywy preprocesora
* Reguły programowania obiektowego
* Operacje na łańcuchach znaków
* Stosowanie wyrażeń regularnych
* Tworzenie aplikacji dla systemu Windows
* Łączenie z bazami danych za pomocą ADO.NET
* Pisanie aplikacji i usług sieciowych
* Zdalne korzystanie z obiektów
* Wątki i synchronizacja
* Operacje na plikach
* Opisuje C# 2.0, .NET 2.0 oraz Visual Studio 2005
Poznaj nowoczesne techniki programowania.
Nie ucz się C++ -- naucz się programować w C++
* C++ od najprzydatniejszych elementów, a nie od elementów najprostszych
* Rzeczywiste zadania i ich rozwiązania
* Opis C++ i biblioteki standardowej
* Książka sprawdzona w praktyce na Uniwersytecie Stanford
Książka ta ma pomóc Czytelnikowi w szybkim nauczeniu się języka C++ poprzez pisanie w nim przydatnych programów. Ta strategia wydaje się oczywista, jednak jest odmienna od powszechnie przyjętej metodologii nauczania. Autorzy nie będą uczyć Cię języka C, choć wielu uważa, że jest to niezbędne. W prezentowanych przykładach od razu wykorzystane zostaną wysokopoziomowe struktury, a prezentacja sposobu ich zastosowania będzie często wyprzedzać omówienie ich fundamentów. Dzięki takiemu podejściu zaczniesz szybko pisać programy wykorzystujące idiomy C++.
Zastosowany w książce schemat autorzy wypróbowali podczas kursów prowadzonych na Uniwersytecie Stanforda, na których studenci uczą się pisać programy już na pierwszych zajęciach.
Poznaj:
* Podstawowe cechy C++
* Operacje na ciągach
* Pętle i liczniki
* Przetwarzanie danych "porcja po porcji"
* Organizację programów i danych
* Kontenery sekwencyjne i analiza ciągów tekstowych
* Algorytmy biblioteki standardowej
* Kontenery asocjacyjne
* Funkcje uogólnione i definiowanie własnych typów
* Zarządzanie pamięcią i niskopoziomowymi strukturami danych
* Półautomatyczne zarządzanie pamięcią
* Programowanie zorientowane obiektowo
O autorach:
Andrew Koenig jest członkiem działu badającego systemy oprogramowania w Shannon Laboratory firmy AT&T oraz redaktorem projektu komitetów standaryzacyjnych języka C++. [więcej...]
Barbara Moo jest konsultantką z dwudziestoletnim doświadczeniem programistycznym, zarządzała projektem pierwszego kompilatora C++. [więcej...]
Poznaj profesjonalne techniki programistyczne
C++ to jeden z najpopularniejszych języków programowania. Ma zwięzłą i elegancką składnię, czytelny i logiczny model obiektów i starannie opracowane biblioteki. Jego możliwości dają programiście niemal nieograniczoną kontrolę nad komputerem. Jednak sprawne i efektywne programowanie w C++ to prawdziwa sztuka. Wymaga staranności, dokładnego zaplanowania tworzonej aplikacji oraz wiedzy o funkcjach i mechanizmach, jakie można zastosować.
Książka "C++. Sztuka programowania" przedstawia profesjonalne sposoby tworzenia aplikacji w języku C++. Nie opisuje podstaw języka – skupia się na tworzeniu praktycznych aplikacji z wykorzystaniem profesjonalnych technik programistycznych. Wykonując zawarte w książce przykłady, rozwiążesz różne zadania programistyczne i osiągniesz biegłość w posługiwaniu się językiem C++.
* Szablony STL, biblioteki i model obiektowy języka C++
* Mechanizm odzyskiwania pamięci
* Wykorzystanie wielowątkowości w aplikacjach
* Eksperymentalne elementy języka C++
* Aplikacje internetowe w C++
* Techniki sztucznej inteligencji
* Tworzenie własnego interpretera C++
O autorze:
Herb Schildt jest autorytetem w sprawach języków C, C++, Java i C#, a także doskonałym programistą systemu Windows.
[więcej...]
Wyjątkowy język C++. 40 nowych łamigłówek, zadań programistycznych i rozwiązańWydawnictwo Helion
Poznaj skuteczne rozwiązania problemów, jakie napotkasz podczas codziennej pracy programisty
* Prawidłowo zoptymalizuj kod źródłowy
* Zaprojektuj efektywną obsługę wyjątków
* Naucz się odpowiednio korzystać z przestrzeni nazw
Nauka każdego nowego zagadnienia przebiega zdecydowanie szybciej i efektywniej pod kierunkiem osoby znającej temat. Nie inaczej jest w przypadku nauki programowania w języku C++. Programowanie w tym języku wymaga dogłębnego opanowania możliwości biblioteki standardowej, inżynierii oprogramowania i wielu innych tematów. Rozwiązując samodzielnie zagadki, jakie często pojawiają się podczas poznawania języka C++ lepiej zapamiętujemy ich rozwiązania, dzięki czemu łatwiej możemy zastosować je w codziennej pracy.
Książka "Wyjątkowy język C++. 40 nowych łamigłówek, zadań programistycznych i rozwiązań" to zbiór zagadnień związanych z niemal wszystkimi aspektami programowania w C++, przedstawionych w formie zagadek z rozwiązaniami. Opisuje zarówno podstawy stosowania szablonów, biblioteki standardowej i projektowanie klas, jak i tematy zaawansowane -- przestrzenie nazw, wyjątki, dziedziczenie i zarządzanie zasobami. Czytając ją, przekonasz się, w jaki sposób można użyć pozornie niezwiązanych ze sobą elementów do opracowania nowych i oryginalnych rozwiązań częstych problemów.
* Poprawne stosowanie predykatów
* Kontenery i wskaźniki
* Korzystanie z szablonów
* Optymalizacja kodu
* Bezpieczna obsługa wyjątków
* Mechanizmy dziedziczenia i polimorfizmu
* Zarządzanie zasobami i pamięcią
* Makrodefinicje
* Przestrzenie nazw
Gdy zrozumiesz zagadnienia opisywane w tej książce, nie będziesz musiał podczas programowania zastanawiać się nad szczegółami -- będziesz mógł skoncentrować się na problemach, które naprawdę chcesz rozwiązać.
O autorze:
Herb Sutter to ekspert od programowania w języku C++. Jest regularnie zapraszany do wygłaszania wykładów na konferencjach dla programistów.
[więcej...]
Rozpocznij przygodę z programowaniem
* Poznaj elementy języka C++.
* Naucz się przetwarzać dane tekstowe i liczbowe.
* Opanuj zasady programowania obiektowego.
C++ to język programowania wykorzystywany do wielu zadań. Programiści stosują go do tworzenia aplikacji użytkowych, gier, a nawet części systemów operacyjnych. Może więc wydawać się, że opanowanie zasad programowania w tym języku przekracza możliwości przeciętnego człowieka. Tak jednak nie jest -- programowanie to nie wiedza tajemna, dostępna jedynie dla wybranych, a programiści znający C++ nie są nadludźmi. Z odpowiednią pomocą można bez kłopotów zdobyć wiedzę o wszystkich sztuczkach i ciekawostkach C++, a nauka programowania w tym języku nie powinna sprawić Ci problemów.
Książka "C++ bez obaw" może być Twoim asystentem, gdy będziesz się uczył programowania w języku C++. Dzięki niej przekonasz się, że opanowanie tej sztuki leży w Twoim zasięgu. Znajdziesz w niej omówienie elementów C++ zilustrowane praktycznymi przykładami. Dowiesz się, z czego zbudowany jest program w C++ i jak sprawić, aby kod źródłowy stał się aplikacją możliwą do uruchomienia na Twoim komputerze. Przeczytasz o przetwarzaniu danych, operacjach na plikach, sortowaniu, obliczeniach matematycznych i programowaniu obiektowym. Poznasz wiele przydatnych zagadnień związanych z tworzeniem oprogramowania.
* Struktura programu w C++
* Wyświetlanie danych na ekranie
* Typy danych
* Pętle i instrukcje warunkowe
* Korzystanie ze wskaźników
* Operacje na plikach
* Programowanie obiektowe
Poszerz swoje możliwości, programuj w języku C++
Wzorce projektowe są modelami gotowych rozwiązań problemów programistycznych, przed jakimi często stają twórcy oprogramowania. Dzięki nim nie musimy ponownie "wymyślać koła". Dysponując wzorcami projektowymi, jesteśmy w stanie szybciej i efektywniej zbudować aplikację, ponieważ koncentrujemy się na samej implementacji algorytmu, a nie na jego opracowaniu. Najczęściej stosowane, klasyczne już, 23 wzorce projektowe opracowane przez twórców notacji UML implementowano już w wielu językach programowania. Jak sprawdzą się w połączeniu z jedną z najnowszych technologii, jaką jest .NET?
"C#. Wzorce projektowe" to kompletny przewodnik po wzorcach projektowych w C# i środowisku .NET. Przedstawia sposoby wykorzystania obiektowych cech języka C# i tworzenia eleganckiego kodu poprzez zastosowanie wzorców projektowych oraz korzystanie z ogromnych możliwości oferowanych przez biblioteki klas FCL dla środowiska Microsoft .NET. Wszystkie przedstawione w książce wzorce projektowe zostały zilustrowane przykładami kodu oraz diagramami UML, co ułatwia ich zrozumienie oraz zastosowanie w praktyce.
* Podstawowe wiadomości o wzorcach projektowych
* Interfejsy i klasy abstrakcyjne
* Wzorce interfejsów
* Wzorce odpowiedzialności
* Wzorce konstrukcyjne
* Wprowadzenie do operacji
* Wzorce operacji
* Wzorce rozszerzeń
* Wzorce rozszerzające
Poznaj zastosowanie wzorców projektowych
i wykorzystaj je w swojej pracy.
Język C++ od czasu jego zdefiniowania przez Bjarne Stroustrupa był kilkakrotnie uaktualniany w latach 80. i 90. XX wieku. Chociaż C++Builder nie jest dokładnym odzwierciedleniem standardu ANSI języka C++, to obecna jego wersja przygotowana przez firmę Borland jest stabilna i zgodna z oczekiwaniami programistów. Borland C++Builder stanowi połączenie nowoczesnego języka programowania, jakim jest C++, biblioteki komponentów wizualnych VCL/CLX oraz zintegrowanego środowiska programisty IDE.
"C++Builder. Kompendium programisty" omawia podstawy programowania w C++ ze szczególnym uwzględnieniem możliwości oferowanych przez kompilator Borland C++Builder. Poznasz więc nie tylko sam język, ale nauczysz się pisać w nim wydajne i przenośne aplikacje, działające zarówno w środowisku linuksowym, jak i w Windows.
Omówione zagadnienia obejmują:
* Opis zintegrowanego środowiska programisty C++Buildera
* Podstawy języka C++
* Wczesne oraz późne wiązanie -- wstęp do programowania zorientowanego obiektowo
* Możliwości C++Buildera w zakresie posługiwania się tablicami różnego typu
* Zaawansowane operatory rzutowania typów
* Informacje czasu wykonania
* Obsługę wyjątków
* Obsługę plików
* Łańcuchy ANSI
* Zmienne o typie modyfikowalnym w czasie wykonywania programu
* Funkcje FPU i systemowe
* Elementy wielowątkowości -- wykorzystanie C++ oraz C++Buildera w nowoczesnych, wielowątkowych systemach operacyjnych
* Liczby pseudolosowe i konwersje wielkości liczbowych
* Wprowadzenie do grafiki
* Komponentowy model C++Buildera i biblioteki DLL
* Biblioteka CLX -- projektowanie aplikacji przenośnych pomiędzy systemami operacyjnymi Windows i Linux
Wizualne środowiska projektowe od dłuższego czasu cieszą się uznaniem programistów. Możliwość budowania aplikacji z gotowych komponentów, realizujących typowe funkcje, pozwala skoncentrować się na jej funkcjonalności bez potrzeby ponownego wymyślania koła. Najbardziej znanym środowiskiem tego typu jest Delphi, jednak jego producent, firma Borland, wypuścił na rynek kolejne narzędzie: C++Builder. To wizualne środowisko projektowe oparte na języku C++ pozwala tworzyć aplikacje dla platformy Win32 z wykorzystaniem komponentów VCL. W sieci dostępna jest również jego bezpłatna wersja o nazwie Turbo C++ Explorer.
"C++Builder i Turbo C++. Podstawy" to podręcznik programowania w tych środowiskach. Czytając go, nauczysz się tworzyć aplikacje w języku C++ dla systemu Windows z wykorzystaniem C++Buildera lub Turbo C++. Dowiesz się, jak zainstalować i skonfigurować środowisko programistyczne oraz jak utworzyć w nim projekt. Poznasz elementy języka C++, zasady programowania obiektowego i korzystania z komponentów VCL. Stworzysz własne komponenty i aplikacje, zaimplementujesz mechanizm przeciągania i upuszczania, a także zapiszesz dane aplikacji w rejestrze systemu Windows.
* Instalacja środowiska programistycznego
* Pierwszy projekt
* Zmienne i instrukcje w C++
* Programowanie zorientowane obiektowo
* Wyszukiwanie i usuwanie błędów w kodzie
* Komponenty VCL oferowane przez C++Buildera
* Tworzenie interfejsu użytkownika dla aplikacji
* Drukowanie
* Operacje na plikach
* Przechowywanie informacji w rejestrze systemowym
* Tworzenie własnych komponentów VCL
Poznaj nowoczesne narzędzia programistyczne.
Cg to kompletne środowisko programistyczne do szybkiego tworzenia efektów specjalnych i grafiki o kinowej jakości w czasie rzeczywistym dla wielu platform. Ponieważ język jest niezależny od sprzętu, programiści mogą pisać kod dla interfejsów OpenGL, DirectX oraz systemów Windows, Linux, Mac OS X, a także platform konsolowych, (Xbox) bez potrzeby korzystania z języka asemblerowego. Język Cg powstał w firmie NVIDIA Corporation przy bliskiej współpracy z firmą Microsoft® Corporation i jest kompatybilny z OpenGL API oraz językiem HLSL dla biblioteki DirectX 9.
Książka jest podręcznikiem przeznaczonym dla średnio zaawansowanych programistów. Opisuje ona zarówno sam język programowania Cg, jak i metody wielu składników nowoczesnych aplikacji bazujących na grafice trójwymiarowej.
Prezentowane w książce zagadnienia to m.in.:
* Historia języka Cg
* Środowisko programistyczne Cg
* Składnia Cg i słowa kluczowe
* Przekształcenia w przestrzeni trójwymiarowej
* Oświetlenie bazujące na wierzchołkach i pikselach
* Interpolacja ujęć kluczowych i system kości
* Mapowanie środowiska
* Mapowanie nierówności
* Mgła, światła reflektorowe, cienie
* Zwiększanie wydajności
"Książka ważna i na czasie: tworzenie tekstur proceduralnych na poziomie pikseli -- animowanych chmur, ognia, wody i wielu innych sztuczek -- nareszcie z ekranów kin przechodzi pod strzechy. Cała moc jest dostępna dzięki językowi przypominającemu język C, co otwiera nowy rozdział w grafice komputerowej.
Ken Perlin, Uniwersytet w Nowym Jorku
C++ to popularny i uniwersalny język programowania. Jednak po dłuższym stosowaniu programiści zaczynają zauważać pewne jego niedoskonałości i ograniczenia. System typów, sposób działania niektórych kompilatorów, związki pomiędzy wskaźnikami i tablicami, nieprzewidziane w standardzie zachowania obiektów statycznych i bibliotek dynamicznych to tylko niektóre z nich. Aby je obejść, należy wykorzystywać wiele bardzo zaawansowanych i nieznanych wielu programistom metod.
Książka "Język C++. Gotowe rozwiązania dla programistów" to podręcznik dla tych programistów C++, którzy zaczęli już dostrzegać ograniczenia tego języka i zastanawiają się, jak sobie z nimi poradzić. Autor pokazuje sposoby ujarzmienia złożoności języka i uzyskania pełnej kontroli nad kodem. Przedstawia najpoważniejsze wady C++ i sposoby rozwiązywania powodowanych przez nie problemów. Opisuje również metody tworzenia stabilniejszego, bardziej uniwersalnego, wydajniejszego i łatwiejszego w pielęgnacji kodu.
* Wymuszanie założeń projektowych
* Cykl życia obiektów
* Hermetyzacja zasobów, danych i typów
* Modele dostępu do obiektów
* Obsługa wątków
* Korzystanie z obiektów statycznych
* Konwersja danych i typów
* Zarządzanie pamięcią
* Sterowanie działaniem kompilatora
Wszyscy programiści, niezależnie od stopnia zaawansowania, znajdą w tej książce wiadomości, które usprawnią i przyspieszą ich pracę.
Poznanie istoty programowania komputerów można zacząć od analizy języków programowania, ich struktur, typów danych i instrukcji. Jednak mnogość języków, różnice pomiędzy nimi i możliwość wykorzystania ich do różnych zadań sprawiają, że przeprowadzenie takiej analizy będzie niezwykle czasochłonne, a jednocześnie nie będzie gwarantowało poznania wszystkich koncepcji i paradygmatów programowania. Naukę koncepcji programowania najlepiej rozpocząć od poznania modelowych struktur realizowanych za pomocą modeli obliczeniowych -- konstrukcji definiujących sposób realizacji obliczeń, nie powołujących się na konkretny język.
Książka "Programowanie. Koncepcje, techniki i modele" prezentuje programowanie jako zbiór takich właśnie modeli. Opisuje je w postaci kodów stworzonych w prostym języku podstawowym przeznaczonym dla abstrakcyjnego komputera. W książce przedstawiono zarówno modele ogólne -- programowanie deklaratywne, współbieżność deklaratywną, współbieżność przesyłania komunikatów, stan jawny, programowanie zorientowane obiektowo, współbieżność stanu dzielonego oraz programowanie relacyjne -- jak i modele specjalizowane, takie jak programowanie graficznych interfejsów użytkownika, programowanie rozproszone oraz programowanie z ograniczeniami. Publikacja zawiera wiele fragmentów programów i ćwiczeń. Można je uruchomić w ramach systemu Mozart Programming System -- pakietu programistycznego rozprowadzanego na licencji open source.
* Podstawowe założenia problematyki programowania
* Notacja Backusa-Naura
* Gramatyki kontekstowe i bezkontekstowe
* Zasada działania maszyny abstrakcyjnej
* Typy danych, instrukcje i funkcje
* Drzewa i analiza składniowa
* Metodologie projektowania programów
* Programowanie współbieżne
* Zasady projektowanie i programowanie obiektowego
* Projektowanie interfejsów użytkownika
* Obliczenia rozproszone
Pisanie niezawodnych programów wymaga opanowania koncepcji leżących u ich podstaw. Dzięki tej książce poznasz je wszystkie.
Przystępny kurs programowania dla wszystkich
* Poznaj najpopularniejsze języki programowania
* Zorganizuj sobie pracę przy tworzeniu aplikacji
* Napisz własny program
* Przetestuj aplikacje i usuń błędy
Mimo dynamicznego rozwoju informatyki wśród większości użytkowników komputerów nadal istnieje przekonanie, że programowanie jest zajęciem dla wybrańców posiadających ogromną i niemal tajemną wiedzę. Tymczasem pisanie programów to umiejętność, którą może opanować każdy. Oczywiście nauka programowania wymaga poznania wielu zagadnień teoretycznych i praktycznych, ale nie wymaga od osoby uczącej się żadnych niezwykłych umiejętności. Każdy może poznać zasady pisania programów, zarówno dla celów hobbystycznych, jak i zawodowych.
Książka "Programowanie. Od podstaw" to podręcznik programowania przeznaczony dla osób, które dopiero rozpoczynają swoją komputerową przygodę. Zawiera uniwersalne wiadomości przydatne każdemu programiście niezależnie od tego, co i w jakim języku będzie tworzyć. Czytając ją, poznasz wady i zalety różnych języków programowania, sposoby realizacji typowych zadań programistycznych i metody testowania aplikacji. Dowiesz się, jak komputery przechowują informacje, jakie systemy liczbowe wykorzystuje się w programowaniu i jakie narzędzia będą Ci potrzebne podczas pracy. Zdobędziesz solidne podstawy, które pozwolą Ci na dalsze rozwijanie swoich umiejętności.
* Sposób interpretacji kodu źródłowego przez komputer
* System binarny i szesnastkowy
* Warsztat pracy programisty
* Komentarze w kodach programów
* Definiowanie zmiennych
* Instrukcje warunkowe
* Testowanie i usuwanie błędów
* Projektowanie interfejsów użytkownika
* Operacje na plikach
* Wykorzystywanie rejestru Windows
* Zarządzanie wersjami kodu
* Kompilacja
Przekonaj się, że programowanie nie jest trudne.
Błyskawiczny kurs tworzenia aplikacji WWW w języku C#
C# to całkiem nowy język programowania zaprojektowany przez firmę Microsoft. Wygląda on jak mieszanka C++ i Javy, jest jednak tak prosty jak Visual Basic. Z jego pomocą można tworzyć aplikacje WWW i programy wyposażone w graficzny interfejs użytkownika. Język ten związany jest z platformą .NET, umożliwiającą tworzenie zaawansowanych aplikacji biznesowych działających w środowisku sieciowym, w tym także z technologią budowania dynamicznych serwisów internetowych ASP.NET. Programy działające na platformie .NET można pisać w wielu językach programowania, ale wiele wskazuje na to, że właśnie C# stanie się najpopularniejszym z nich.
Książka "C# i ASP.NET. Szybki start" jest doskonałym podręcznikiem dla początkujących programistów. Jak każda pozycja z serii "Szybki start", składa się z kilkudziesięciu rozdziałów, z których każdy przedstawia kolejne kroki, które należy wykonać, by osiągnąć zamierzony cel. Dodatkową zaletę stanowią liczne ilustracje.
Opisano między innymi:
* Instalację niezbędnego oprogramowania
* Składniki języka C#
* Instrukcje warunkowe i pętle
* Pracę z ciągami znaków
* Programowanie obiektowe w C#
* Korzystanie z tablic i kolekcji
* Delegaty, zdarzenie, obsługę błędów
* Tworzenie dynamicznych serwisów WWW w języku C#
Programista chcący tworzyć zaawansowane aplikacje internetowe ma wybór pomiędzy dwoma platformami: Java 2 EE Suna i .NET Microsoftu. Jeśli wybierze tę drugą, dzięki książce "C# i ASP.NET. Szybki start" szybko będzie mógł tworzyć funkcjonalne aplikacje WWW w nowym, ekscytującym języku C#.
AutoCAD jest bez wątpienia najpopularniejszym w Polsce programem typu CAD, posługuje się nim od bardzo dawna duże grono użytkowników. W trakcie pracy z Auto-CAD-em użytkownicy zdążyli już dokładnie poznać jego narzędzia, jednakże nowe wersje stają się coraz bardziej rozbudowane i oferują coraz więcej możliwości. Wersja 2004 wprowadza między innymi wiele ulepszeń palet narzędzi oraz zwiększoną funkcjonalność Centrum danych projektowych. Dostępny jest również poprawiony Malarz formatów, ExpressTools (znane z wersji 2000), wypełnienia gradientowe i wiele usprawnień dotyczących tworzenia odnośników zewnętrznych.
Ta obszerna pozycja przeznaczona jest zarówno dla początkujących użytkowników AutoCAD-a (mogą oni dzięki niej dogłębnie poznać ten wspaniały program), jak i dla tych, którzy mieli już do czynienia z poprzednimi wersjami tej aplikacji. W książce zamieszczono bardzo wiele bogato ilustrowanych przykładów pokazujących praktyczne zastosowanie omawianych narzędzi.
* Poznasz nowe możliwości AutoCAD-a wprowadzone w wersji 2004
* Poznasz interfejs AutoCAD-a, menu i paski narzędzi
* Nauczysz się otwierać i zapisywać dokumenty
* Poznasz podstawowe obiekty AutoCAD-a i ich właściwości
* Dowiesz się, jak wybierać i modyfikować obiekty
* Nauczysz się tworzyć napisy
* Zaznajomisz się z warstwami i blokami ułatwiającymi tworzenie projektów
* Poznasz Centrum danych projektowych, umożliwiające współdzielenie danych oraz ponowne wykorzystanie istniejących już rysunków lub wybranych ich elementów
* Nauczysz się wykorzystywać regiony i multilinie
* Poznasz techniki wymiarowania, modyfikowanie wymiarów i style wymiarowe
* Dowiesz się, jak modelować w przestrzeni 3D, nauczysz się pracować z bryłami ACIS
* Nauczysz się podstaw renderingu
* Skorzystasz z możliwości standardów CAD
* Połączysz swoje rysunki z danymi zawartymi w bazach danych
* Przyspieszysz swoją pracę za pomocą ExpressTools
* Poznasz podstawy AutoLispu
Książkę uzupełniają dwa CD-ROM, na których znajdziesz demonstracyjną wersję programu AutoCAD 2004, a także liczne rysunki, wykorzystane jako przykłady w tekście i oprogramowanie wspomagające prace z AutoCAD-em w wersjach demonstracyjnych i shareware.
Poznaj świat nowych brzmień i efektów dźwiękowych.
Karta dźwiękowa Creative Sound Blaster Live! oferuje funkcje i wydajność przewyższające wiele profesjonalnych kart. Możliwości tej karty wymagają często niezbędnej i fachowej wiedzy. Bez względu na doświadczenie w posługiwaniu się nią, w tej książce (autorstwa Larsa Ahlzena i Clarence Songa, którzy zajmują się prowadzeniem dwóch najpopularniejszych, nieoficjalnych witryn internetowych poświęconych kartom Live!, Live! Center oraz Alive!) znajdziesz wiele cennych informacji pozwalających na wszechstronniejsze wykorzystanie karty.
W książce zaprezentowano wszelkie niezbędne informacje -- poczynając od tego, jakie funkcje i złącza oferuje karta, poprzez omówienie oprogramowania dołączanego do karty Live!, a na tworzeniu zapisu dźwiękowego i muzyki skończywszy.
Dowiesz się jak:
* Instalować i korzystać z cyfrowych akcesoriów wejścia-wyjścia, takich jak moduły Live!Drive i zyskać w ten sposób szersze możliwości przyłączania urządzeń audio
* Połączyć kartę Sound Blaster Live! z głośnikami multimedialnymi czy systemem kina domowego
* Korzystać z miksera i efektów EAX (ang. Enviromental Audio Extensions)
* Nagrywać dźwięk poprzez odpowiednie ustawienia miksera, a następnie edytować wykonane nagrania
* Wykorzystać funkcje MIDI karty i łączyć ją z instrumentami MIDI.
* Wyszukiwać, tworzyć, odtwarzać i zarządzać plikami SoundFont
* Korzystać z sekwencerów sterujących MIDI i efektami obsługującymi format SoundFont, takimi jak Cakewalk i Cubase
* Łączyć sprzętowe elementy SBLive! (wykorzystując różne złącza, wtyki oraz cyfrowe wejścia i wyjścia)
Na płycie CD-ROM umieszczone zostały pliki muzyczne i dźwiękowe, próbki, klipy audio, pliki SoundFont oraz wybrane programy freeware i shareware.
Książka "Sound Blaster Live! Przewodnik po karcie dźwiękowej" otwiera drzwi do świata nowych brzmień i nieograniczonych możliwości karty Sound Blaster Live!.
C++. 50 efektywnych sposobów na udoskonalenie Twoich programówWydawnictwo Helion
Pierwsze wydanie książki "C++. 50 efektywnych sposobów na udoskonalenie twoich programów" zostało sprzedane w nakładzie 100 000 egzemplarzy i zostało przetłumaczone na cztery języki. Nietrudno zrozumieć, dlaczego tak się stało. Scott Meyers w charakterystyczny dla siebie, praktyczny sposób przedstawił wiedzę typową dla ekspertów -- czynności, które niemal zawsze wykonują lub czynności, których niemal zawsze unikają, by tworzyć prosty, poprawny i efektywny kod. Każda z zawartych w tej książce pięćdziesięciu wskazówek jest streszczeniem metod pisania lepszych programów w C++, zaś odpowiednie rozważania są poparte konkretnymi przykładami. Z myślą o nowym wydaniu, autor opracował od początku wszystkie opisywane w tej książce wskazówki. Wynik jego pracy jest wyjątkowo zgodny z międzynarodowym standardem C++, technologią aktualnych kompilatorów oraz najnowszymi trendami w świecie rzeczywistych aplikacji C++.
Do najważniejszych zalet książki "C++. 50 efektywnych sposobów na udoskonalenie twoich programów" należą:
* Eksperckie porady dotyczące projektowania zorientowanego obiektowo, projektowania klas i właściwego stosowania technik dziedziczenia
* Analiza standardowej biblioteki C++, włącznie z wpływem standardowej biblioteki szablonów oraz klas podobnych do string i vector na strukturę dobrze napisanych programów
* Rozważania na temat najnowszych możliwości języka C++: inicjalizacji stałych wewnątrz klas, przestrzeni nazw oraz szablonów składowych
* Wiedza będąca zwykle w posiadaniu wyłącznie doświadczonych programistów
Książka "C++. 50 efektywnych sposobów na udoskonalenie twoich programów" pozostaje jedną z najważniejszych publikacji dla każdego programisty pracującego z C++.
"C++. Kruczki i fortele w programowaniu" to pomoc dla zawodowych programistów pozwalająca uniknąć lub poprawić dziewięćdziesiąt dziewięć najczęściej popełnianych i najbardziej szkodliwych błędów projektowych i programowych w C++. Jest to też książka, dzięki której można poznać niektóre niestandardowe cechy języka C++ i techniki programistyczne.
W książce omówiono typowe błędy występujące niemalże we wszystkich programach utworzonych w C++. Każdy z nich został starannie opisany, przedstawiono również konsekwencje wynikające z ich pojawienia się w kodzie programu i szczegółowy opis sposobów na ich uniknięcie. "C++. Kruczki i fortele w programowaniu” to książka o tym, jak uniknąć największych zagrożeń związanych z programowaniem w C++. Gotowa i praktyczna wiedza dla programistów, która pozwoli im uzyskać status ekspertów.
Omówione błędy dotyczą:
* Podstaw języka C++
* Składni języka
* Preprocesora
* Konwersji
* Inicjalizacji
* Zarządzania pamięcią i zasobami
* Polimorfizmu
* Projektowania klas
* Projektowania hierarchii
O autorze:
Stephen C. Dewhurst był jednym z pierwszych użytkowników języka C++ w laboratoriach Bell Labs. Ma ponad dwudziestoletnie doświadczenie w stosowaniu C++ do rozwiązywania problemów w takich dziedzinach, jak projektowanie kompilatorów, zabezpieczanie handlu elektronicznego czy telekomunikacja implementowana na bazie urządzeń wbudowanych [więcej...]
C++ wspomaga programowanie w dużej skali, pozwalając na precyzyjne wyrażenie współzależności pomiędzy różnymi częściami programu. Dlatego zakres pojęciowy techniki i stylu programowania w C++ wykracza poza tradycyjne jego pojmowanie w odniesieniu do programowania w małej skali, sprowadzającego się do szczegółów kodowania wiersz po wierszu.
Autor dowodzi, że nieprzemyślane stosowanie złożonych i zaawansowanych technik programowania może prowadzić do tworzenia chaotycznych, niezrozumiałych i mętnych konstrukcji, stanowiących zarazem często rozwiązania mniej efektywne, niż prostsze i zrozumiałe konstrukcje alternatywne. Tom Cargill dokonuje przeredagowania licznych programów, stosując techniki pozwalające na udoskonalenie kodu, począwszy od poprawy spójności, po usunięcie zbędnego, nadmiarowego dziedziczenia. Sposób prezentacji zagadnień rozpoczyna się od przeglądu oryginalnego kodu, który możesz samodzielnie ocenić i przeanalizować, rozważając możliwe alternatywne podejścia do przedstawionych zagadnień programistycznych. Te własne przemyślenia możesz następnie porównać z analizami i wnioskami Autora.
Na podstawie przykładów formułowane są uniwersalne reguły i zasady tworzenia kodu i projektowania programów. Zrozumienie i umiejętne stosowanie tych reguł pomoże profesjonalnym programistom projektować i pisać lepsze programy w C++.
Kolejne rozdziały poświęcone są następującym zagadnieniom:
* Abstrakcja -- pojęcia i modele abstrakcyjne
* Spójność
* Zbędne dziedziczenie
* Funkcje wirtualne
* Przeciążanie operatorów
* Nakładki typu "wrapper"
* Efektywność
Po wprowadzeniu i zilustrowaniu reguł programowania w pierwszych siedmiu rozdziałach, Tom Cargill prezentuje praktyczne studium, w trakcie którego pojedynczy przykładowy program przechodzi kolejne transformacje, które pozwalają poprawić jego ogólną jakość przy jednoczesnym zredukowaniu wielkości kodu. Konkluzję książki stanowi rozdział poświęcony wielokrotnemu dziedziczeniu.
Książka Toma Cargilla to nie tylko cenne źródło wiedzy dla zaawansowanych programistów -- przyda się ona również studentom informatyki i pokrewnych kierunków, zainteresowanych zdobyciem profesjonalnych umiejętności programistycznych.
Doskonałe źródło wiedzy dla wszystkich programistów C#
* Szczegółowe omówienie C# i .NET w wersji 2.0
* Techniki tworzenia i zabezpieczania aplikacji oraz zarządzania kodem źródłowym i wersjami
* Dziesiątki przykładów i kodów źródłowych
Platforma .NET i język C# spowodowały prawdziwą rewolucję na rynku narzędzi programistycznych. Wersja 2.0 przyniosła kilka interesujących rozwiązań, w tym nowe typy danych, komponenty i klasy. Dodatkowe funkcje języka C# pozwalają na przyspieszenie i usprawnienie procesu tworzenia aplikacji oraz jej wdrażania i rozwijania. Dzięki platformie .NET przygotowanie wydajnej, bezpiecznej i łatwej do rozbudowy aplikacji stało się znacznie prostsze i szybsze.
Książka "C# i .NET" przedstawia możliwości platformy .NET i napisanego specjalnie dla niej języka C#. Opisuje elementy platformy, składnię i możliwości języka C# oraz zagadnienia związane z tworzeniem programów za pomocą tych narzędzi. Omawia zasady pisania aplikacji Window Forms i efektywne techniki stosowania klas graficznych z biblioteki GDI+. Charakteryzuje także technologię ADO.NET, metody korzystania z plików XML, przetwarzanie wielowątkowe oraz techniki tworzenia wydajnych aplikacji internetowych w technologii ASP.NET. Szczególną uwagę poświęcono bezpieczeństwu programów i danych oraz skalowaniu i lokalizacji oprogramowania.
* Elementy platformy .NET
* Podstawy języka C#
* Praca z klasami i obiektami w C#
* Przetwarzanie tekstu oraz operacje wejścia i wyjścia
* Tworzenie aplikacji Window Forms
* Korzystanie z biblioteki GDI+
* Połączenia z bazami danych za pomocą ADO.NET
* Aplikacje wielowątkowe oraz rozproszone
* Tworzenie aplikacji internetowych
Jeśli chcesz napisać w C# aplikację dobrej jakości, sięgnij po tę książkę.
Język C++ to najpopularniejszy obecnie język programowania. Jego podstawowe zalety -- przejrzysta składnia, niewielka ilość słów kluczowych i szeroki wachlarz możliwości -- przysporzyły mu wielu zwolenników. Na rynku dostępnych jest wiele książek o programowaniu w C++, jednak większość z nich zawiera sposoby rozwiązywania konkretnych problemów i zadań programistycznych. Niewiele książek koncentruje się na założeniach, na których opiera się programowanie w języku C++.
W książce "Język C++. Koncepcje i techniki programowania" autorzy skoncentrowali się na kluczowych technikach programowania w C++. Jednak nie przedstawiają ich w formie odpowiedzi na pytania "jak to zrobić", ale "dlaczego robimy to tak, a nie inaczej". Opisują szeroki wachlarz idei i technik programowania w C++ począwszy od szczegółowych przykładów kodu, a skończywszy na zasadach i filozofii projektowania.
* Tworzenie klas
* Uchwyty klas
* Zasady projektowania obiektowego
* Szablony i iteratory
* Stosowanie bibliotek
* Projektowanie bibliotek
* Techniki programowania
Dzięki tej książce nauczysz się nie tylko przestrzegać reguł języka C++, ale także myśleć w tym języku podczas pracy nad programem.
O autorach:
Andrew Koenig jest członkiem działu badającego systemy oprogramowania w Shannon Laboratory firmy AT&T oraz redaktorem projektu komitetów standaryzacyjnych języka C++. [więcej...]
Barbara Moo jest konsultantką z dwudziestoletnim doświadczeniem programistycznym, zarządzała projektem pierwszego kompilatora C++. [więcej...]
Bogaty zbiór rozwiązań często spotykanych
problemów programistycznych języka Visual C++
* Poznaj środowisko tworzenia programów w Visual C++ 2005
* Naucz się składni języka Visual C++
* Wykorzystaj możliwości platformy .NET w programach w Visual C++
W kontekście programowania przy użyciu platformy .NET zwykle mówi się o językach Visual Basic i C#. Większość stron internetowych, artykułów i książek dotyczących .NET zawiera kod napisany właśnie w nich. Co mają zrobić programiści, którzy od lat używają C++ i wcale nie chcą rezygnować z jego licznych zalet? Czy jedynym wyborem jest nauka nowego języka lub pozostanie poza światem programowania dla .NET?
Książka "Aplikacje w Visual C++ 2005. Przykłady" zawiera dziesiątki krótkich zadań wraz z rozwiązaniami, dzięki którym błyskawicznie zaczniesz wykorzystywać możliwości platformy .NET w programach pisanych w języku C++. Poznasz środowisko Visual C++ 2005 Express Edition oraz podstawowe składniki aplikacji pisanych w Visual C++. Nauczysz się między innymi obsługiwać dane, przetwarzać pliki, korzystać z wątków oraz łączyć aplikacje z internetem. Dowiesz się także, jak wykonać wiele innych operacji niezbędnych w codziennej pracy programisty.
* Środowisko Visual C++ 2005 Express Edition
* Elementy aplikacji języka Visual C++
* Przetwarzanie i wyświetlanie danych
* Praca z plikami
* Używanie okien dialogowych
* Programy wielowątkowe
* Stosowanie grafiki w aplikacjach
* Tworzenie programów używających sieci
* Składnia języka Visual C++ w pigułce
Przyspiesz wykonywanie codziennych zadań programistycznych,
stosując sprawdzone rozwiązania.
Książka zawiera oficjalną dokumentację języka Visual C# .NET. C# jest jednym z podstawowych języków dostępnych na platformie .NET, łączącym w sobie największe zalety Javy i C++. "Visual C#. NET. Encyklopedia" to doskonałe uzupełnienie dokumentacji dostępnej w formie elektronicznej, niezbędne dla każdego programisty korzystającego z C#. Poza szczegółowym opisem języka, a także kompilatora C#, zawiera ona wiele przykładów gotowych do wykorzystania w konkretnych aplikacjach. Jest to książka, do której będziesz często powracał.
Omówiono:
* Typy
* Modyfikatory
* Polecenia
* Przestrzenie nazw
* Operatory
* Przekształcenia
* Dyrektywy preprocesora
* Atrybuty
* Tworzenie dokumentacji w XML
Podręcznik podstawowego języka programowania dla platformy .NET
* Poznaj elementy języka C#
* Stwórz własną aplikację
* Komunikuj się z bazami danych
Język C# został opracowany przez firmę Microsoft jako podstawowe narzędzie programistyczne dla platformy .NET. C# łączący w sobie najlepsze cechy języków C, C++, Java i Visual Basic doskonale nadaje się do tworzenia aplikacji bazujących na komponentach. Jest prosty, bezpieczny ze względu na typy, oparty na obiektach i komponentach i przygotowany do obsługi mechanizmów komunikacji sieciowej. Za pomocą C# tworzone są nie tylko aplikacje na "duże" komputery, ale także programy dla platformy PocketPC. Popularność C# nadal rośnie, a jego producent stale inwestuje w dalszy rozwój tego narzędzia i platformy .NET.
"C#. Programowanie" to podręcznik przedstawiający tajniki tworzenia aplikacji dla .NET w języku C#. Przeczytasz w nim o podstawowych elementach i strukturach C#, zasadach programowania obiektowego oraz obsłudze wyjątków i błędów. Poznasz sposoby tworzenia aplikacji z wykorzystaniem podstawowych technologii tworzenia aplikacji dla platformy .NET -- ASP.NET, Windows Forms i ADO.NET. Nauczysz się wykorzystywać metadane i łączyć swoje aplikacje z API Windows oraz obiektami COM.
* Typy w języku C#
* Zmienne i stałe
* Instrukcje, operatory i dyrektywy preprocesora
* Reguły programowania obiektowego
* Operacje na łańcuchach znaków
* Stosowanie wyrażeń regularnych
* Tworzenie aplikacji dla systemu Windows
* Łączenie z bazami danych za pomocą ADO.NET
* Pisanie aplikacji i usług sieciowych
* Zdalne korzystanie z obiektów
* Wątki i synchronizacja
* Operacje na plikach
* Opisuje C# 2.0, .NET 2.0 oraz Visual Studio 2005
Poznaj nowoczesne techniki programowania.
Nie ucz się C++ -- naucz się programować w C++
* C++ od najprzydatniejszych elementów, a nie od elementów najprostszych
* Rzeczywiste zadania i ich rozwiązania
* Opis C++ i biblioteki standardowej
* Książka sprawdzona w praktyce na Uniwersytecie Stanford
Książka ta ma pomóc Czytelnikowi w szybkim nauczeniu się języka C++ poprzez pisanie w nim przydatnych programów. Ta strategia wydaje się oczywista, jednak jest odmienna od powszechnie przyjętej metodologii nauczania. Autorzy nie będą uczyć Cię języka C, choć wielu uważa, że jest to niezbędne. W prezentowanych przykładach od razu wykorzystane zostaną wysokopoziomowe struktury, a prezentacja sposobu ich zastosowania będzie często wyprzedzać omówienie ich fundamentów. Dzięki takiemu podejściu zaczniesz szybko pisać programy wykorzystujące idiomy C++.
Zastosowany w książce schemat autorzy wypróbowali podczas kursów prowadzonych na Uniwersytecie Stanforda, na których studenci uczą się pisać programy już na pierwszych zajęciach.
Poznaj:
* Podstawowe cechy C++
* Operacje na ciągach
* Pętle i liczniki
* Przetwarzanie danych "porcja po porcji"
* Organizację programów i danych
* Kontenery sekwencyjne i analiza ciągów tekstowych
* Algorytmy biblioteki standardowej
* Kontenery asocjacyjne
* Funkcje uogólnione i definiowanie własnych typów
* Zarządzanie pamięcią i niskopoziomowymi strukturami danych
* Półautomatyczne zarządzanie pamięcią
* Programowanie zorientowane obiektowo
O autorach:
Andrew Koenig jest członkiem działu badającego systemy oprogramowania w Shannon Laboratory firmy AT&T oraz redaktorem projektu komitetów standaryzacyjnych języka C++. [więcej...]
Barbara Moo jest konsultantką z dwudziestoletnim doświadczeniem programistycznym, zarządzała projektem pierwszego kompilatora C++. [więcej...]
Poznaj profesjonalne techniki programistyczne
C++ to jeden z najpopularniejszych języków programowania. Ma zwięzłą i elegancką składnię, czytelny i logiczny model obiektów i starannie opracowane biblioteki. Jego możliwości dają programiście niemal nieograniczoną kontrolę nad komputerem. Jednak sprawne i efektywne programowanie w C++ to prawdziwa sztuka. Wymaga staranności, dokładnego zaplanowania tworzonej aplikacji oraz wiedzy o funkcjach i mechanizmach, jakie można zastosować.
Książka "C++. Sztuka programowania" przedstawia profesjonalne sposoby tworzenia aplikacji w języku C++. Nie opisuje podstaw języka – skupia się na tworzeniu praktycznych aplikacji z wykorzystaniem profesjonalnych technik programistycznych. Wykonując zawarte w książce przykłady, rozwiążesz różne zadania programistyczne i osiągniesz biegłość w posługiwaniu się językiem C++.
* Szablony STL, biblioteki i model obiektowy języka C++
* Mechanizm odzyskiwania pamięci
* Wykorzystanie wielowątkowości w aplikacjach
* Eksperymentalne elementy języka C++
* Aplikacje internetowe w C++
* Techniki sztucznej inteligencji
* Tworzenie własnego interpretera C++
O autorze:
Herb Schildt jest autorytetem w sprawach języków C, C++, Java i C#, a także doskonałym programistą systemu Windows.
[więcej...]
Wyjątkowy język C++. 40 nowych łamigłówek, zadań programistycznych i rozwiązańWydawnictwo Helion
Poznaj skuteczne rozwiązania problemów, jakie napotkasz podczas codziennej pracy programisty
* Prawidłowo zoptymalizuj kod źródłowy
* Zaprojektuj efektywną obsługę wyjątków
* Naucz się odpowiednio korzystać z przestrzeni nazw
Nauka każdego nowego zagadnienia przebiega zdecydowanie szybciej i efektywniej pod kierunkiem osoby znającej temat. Nie inaczej jest w przypadku nauki programowania w języku C++. Programowanie w tym języku wymaga dogłębnego opanowania możliwości biblioteki standardowej, inżynierii oprogramowania i wielu innych tematów. Rozwiązując samodzielnie zagadki, jakie często pojawiają się podczas poznawania języka C++ lepiej zapamiętujemy ich rozwiązania, dzięki czemu łatwiej możemy zastosować je w codziennej pracy.
Książka "Wyjątkowy język C++. 40 nowych łamigłówek, zadań programistycznych i rozwiązań" to zbiór zagadnień związanych z niemal wszystkimi aspektami programowania w C++, przedstawionych w formie zagadek z rozwiązaniami. Opisuje zarówno podstawy stosowania szablonów, biblioteki standardowej i projektowanie klas, jak i tematy zaawansowane -- przestrzenie nazw, wyjątki, dziedziczenie i zarządzanie zasobami. Czytając ją, przekonasz się, w jaki sposób można użyć pozornie niezwiązanych ze sobą elementów do opracowania nowych i oryginalnych rozwiązań częstych problemów.
* Poprawne stosowanie predykatów
* Kontenery i wskaźniki
* Korzystanie z szablonów
* Optymalizacja kodu
* Bezpieczna obsługa wyjątków
* Mechanizmy dziedziczenia i polimorfizmu
* Zarządzanie zasobami i pamięcią
* Makrodefinicje
* Przestrzenie nazw
Gdy zrozumiesz zagadnienia opisywane w tej książce, nie będziesz musiał podczas programowania zastanawiać się nad szczegółami -- będziesz mógł skoncentrować się na problemach, które naprawdę chcesz rozwiązać.
O autorze:
Herb Sutter to ekspert od programowania w języku C++. Jest regularnie zapraszany do wygłaszania wykładów na konferencjach dla programistów.
[więcej...]
Rozpocznij przygodę z programowaniem
* Poznaj elementy języka C++.
* Naucz się przetwarzać dane tekstowe i liczbowe.
* Opanuj zasady programowania obiektowego.
C++ to język programowania wykorzystywany do wielu zadań. Programiści stosują go do tworzenia aplikacji użytkowych, gier, a nawet części systemów operacyjnych. Może więc wydawać się, że opanowanie zasad programowania w tym języku przekracza możliwości przeciętnego człowieka. Tak jednak nie jest -- programowanie to nie wiedza tajemna, dostępna jedynie dla wybranych, a programiści znający C++ nie są nadludźmi. Z odpowiednią pomocą można bez kłopotów zdobyć wiedzę o wszystkich sztuczkach i ciekawostkach C++, a nauka programowania w tym języku nie powinna sprawić Ci problemów.
Książka "C++ bez obaw" może być Twoim asystentem, gdy będziesz się uczył programowania w języku C++. Dzięki niej przekonasz się, że opanowanie tej sztuki leży w Twoim zasięgu. Znajdziesz w niej omówienie elementów C++ zilustrowane praktycznymi przykładami. Dowiesz się, z czego zbudowany jest program w C++ i jak sprawić, aby kod źródłowy stał się aplikacją możliwą do uruchomienia na Twoim komputerze. Przeczytasz o przetwarzaniu danych, operacjach na plikach, sortowaniu, obliczeniach matematycznych i programowaniu obiektowym. Poznasz wiele przydatnych zagadnień związanych z tworzeniem oprogramowania.
* Struktura programu w C++
* Wyświetlanie danych na ekranie
* Typy danych
* Pętle i instrukcje warunkowe
* Korzystanie ze wskaźników
* Operacje na plikach
* Programowanie obiektowe
Poszerz swoje możliwości, programuj w języku C++
Wzorce projektowe są modelami gotowych rozwiązań problemów programistycznych, przed jakimi często stają twórcy oprogramowania. Dzięki nim nie musimy ponownie "wymyślać koła". Dysponując wzorcami projektowymi, jesteśmy w stanie szybciej i efektywniej zbudować aplikację, ponieważ koncentrujemy się na samej implementacji algorytmu, a nie na jego opracowaniu. Najczęściej stosowane, klasyczne już, 23 wzorce projektowe opracowane przez twórców notacji UML implementowano już w wielu językach programowania. Jak sprawdzą się w połączeniu z jedną z najnowszych technologii, jaką jest .NET?
"C#. Wzorce projektowe" to kompletny przewodnik po wzorcach projektowych w C# i środowisku .NET. Przedstawia sposoby wykorzystania obiektowych cech języka C# i tworzenia eleganckiego kodu poprzez zastosowanie wzorców projektowych oraz korzystanie z ogromnych możliwości oferowanych przez biblioteki klas FCL dla środowiska Microsoft .NET. Wszystkie przedstawione w książce wzorce projektowe zostały zilustrowane przykładami kodu oraz diagramami UML, co ułatwia ich zrozumienie oraz zastosowanie w praktyce.
* Podstawowe wiadomości o wzorcach projektowych
* Interfejsy i klasy abstrakcyjne
* Wzorce interfejsów
* Wzorce odpowiedzialności
* Wzorce konstrukcyjne
* Wprowadzenie do operacji
* Wzorce operacji
* Wzorce rozszerzeń
* Wzorce rozszerzające
Poznaj zastosowanie wzorców projektowych
i wykorzystaj je w swojej pracy.
Język C++ od czasu jego zdefiniowania przez Bjarne Stroustrupa był kilkakrotnie uaktualniany w latach 80. i 90. XX wieku. Chociaż C++Builder nie jest dokładnym odzwierciedleniem standardu ANSI języka C++, to obecna jego wersja przygotowana przez firmę Borland jest stabilna i zgodna z oczekiwaniami programistów. Borland C++Builder stanowi połączenie nowoczesnego języka programowania, jakim jest C++, biblioteki komponentów wizualnych VCL/CLX oraz zintegrowanego środowiska programisty IDE.
"C++Builder. Kompendium programisty" omawia podstawy programowania w C++ ze szczególnym uwzględnieniem możliwości oferowanych przez kompilator Borland C++Builder. Poznasz więc nie tylko sam język, ale nauczysz się pisać w nim wydajne i przenośne aplikacje, działające zarówno w środowisku linuksowym, jak i w Windows.
Omówione zagadnienia obejmują:
* Opis zintegrowanego środowiska programisty C++Buildera
* Podstawy języka C++
* Wczesne oraz późne wiązanie -- wstęp do programowania zorientowanego obiektowo
* Możliwości C++Buildera w zakresie posługiwania się tablicami różnego typu
* Zaawansowane operatory rzutowania typów
* Informacje czasu wykonania
* Obsługę wyjątków
* Obsługę plików
* Łańcuchy ANSI
* Zmienne o typie modyfikowalnym w czasie wykonywania programu
* Funkcje FPU i systemowe
* Elementy wielowątkowości -- wykorzystanie C++ oraz C++Buildera w nowoczesnych, wielowątkowych systemach operacyjnych
* Liczby pseudolosowe i konwersje wielkości liczbowych
* Wprowadzenie do grafiki
* Komponentowy model C++Buildera i biblioteki DLL
* Biblioteka CLX -- projektowanie aplikacji przenośnych pomiędzy systemami operacyjnymi Windows i Linux
Wizualne środowiska projektowe od dłuższego czasu cieszą się uznaniem programistów. Możliwość budowania aplikacji z gotowych komponentów, realizujących typowe funkcje, pozwala skoncentrować się na jej funkcjonalności bez potrzeby ponownego wymyślania koła. Najbardziej znanym środowiskiem tego typu jest Delphi, jednak jego producent, firma Borland, wypuścił na rynek kolejne narzędzie: C++Builder. To wizualne środowisko projektowe oparte na języku C++ pozwala tworzyć aplikacje dla platformy Win32 z wykorzystaniem komponentów VCL. W sieci dostępna jest również jego bezpłatna wersja o nazwie Turbo C++ Explorer.
"C++Builder i Turbo C++. Podstawy" to podręcznik programowania w tych środowiskach. Czytając go, nauczysz się tworzyć aplikacje w języku C++ dla systemu Windows z wykorzystaniem C++Buildera lub Turbo C++. Dowiesz się, jak zainstalować i skonfigurować środowisko programistyczne oraz jak utworzyć w nim projekt. Poznasz elementy języka C++, zasady programowania obiektowego i korzystania z komponentów VCL. Stworzysz własne komponenty i aplikacje, zaimplementujesz mechanizm przeciągania i upuszczania, a także zapiszesz dane aplikacji w rejestrze systemu Windows.
* Instalacja środowiska programistycznego
* Pierwszy projekt
* Zmienne i instrukcje w C++
* Programowanie zorientowane obiektowo
* Wyszukiwanie i usuwanie błędów w kodzie
* Komponenty VCL oferowane przez C++Buildera
* Tworzenie interfejsu użytkownika dla aplikacji
* Drukowanie
* Operacje na plikach
* Przechowywanie informacji w rejestrze systemowym
* Tworzenie własnych komponentów VCL
Poznaj nowoczesne narzędzia programistyczne.
Cg to kompletne środowisko programistyczne do szybkiego tworzenia efektów specjalnych i grafiki o kinowej jakości w czasie rzeczywistym dla wielu platform. Ponieważ język jest niezależny od sprzętu, programiści mogą pisać kod dla interfejsów OpenGL, DirectX oraz systemów Windows, Linux, Mac OS X, a także platform konsolowych, (Xbox) bez potrzeby korzystania z języka asemblerowego. Język Cg powstał w firmie NVIDIA Corporation przy bliskiej współpracy z firmą Microsoft® Corporation i jest kompatybilny z OpenGL API oraz językiem HLSL dla biblioteki DirectX 9.
Książka jest podręcznikiem przeznaczonym dla średnio zaawansowanych programistów. Opisuje ona zarówno sam język programowania Cg, jak i metody wielu składników nowoczesnych aplikacji bazujących na grafice trójwymiarowej.
Prezentowane w książce zagadnienia to m.in.:
* Historia języka Cg
* Środowisko programistyczne Cg
* Składnia Cg i słowa kluczowe
* Przekształcenia w przestrzeni trójwymiarowej
* Oświetlenie bazujące na wierzchołkach i pikselach
* Interpolacja ujęć kluczowych i system kości
* Mapowanie środowiska
* Mapowanie nierówności
* Mgła, światła reflektorowe, cienie
* Zwiększanie wydajności
"Książka ważna i na czasie: tworzenie tekstur proceduralnych na poziomie pikseli -- animowanych chmur, ognia, wody i wielu innych sztuczek -- nareszcie z ekranów kin przechodzi pod strzechy. Cała moc jest dostępna dzięki językowi przypominającemu język C, co otwiera nowy rozdział w grafice komputerowej.
Ken Perlin, Uniwersytet w Nowym Jorku
C++ to popularny i uniwersalny język programowania. Jednak po dłuższym stosowaniu programiści zaczynają zauważać pewne jego niedoskonałości i ograniczenia. System typów, sposób działania niektórych kompilatorów, związki pomiędzy wskaźnikami i tablicami, nieprzewidziane w standardzie zachowania obiektów statycznych i bibliotek dynamicznych to tylko niektóre z nich. Aby je obejść, należy wykorzystywać wiele bardzo zaawansowanych i nieznanych wielu programistom metod.
Książka "Język C++. Gotowe rozwiązania dla programistów" to podręcznik dla tych programistów C++, którzy zaczęli już dostrzegać ograniczenia tego języka i zastanawiają się, jak sobie z nimi poradzić. Autor pokazuje sposoby ujarzmienia złożoności języka i uzyskania pełnej kontroli nad kodem. Przedstawia najpoważniejsze wady C++ i sposoby rozwiązywania powodowanych przez nie problemów. Opisuje również metody tworzenia stabilniejszego, bardziej uniwersalnego, wydajniejszego i łatwiejszego w pielęgnacji kodu.
* Wymuszanie założeń projektowych
* Cykl życia obiektów
* Hermetyzacja zasobów, danych i typów
* Modele dostępu do obiektów
* Obsługa wątków
* Korzystanie z obiektów statycznych
* Konwersja danych i typów
* Zarządzanie pamięcią
* Sterowanie działaniem kompilatora
Wszyscy programiści, niezależnie od stopnia zaawansowania, znajdą w tej książce wiadomości, które usprawnią i przyspieszą ich pracę.
Poznanie istoty programowania komputerów można zacząć od analizy języków programowania, ich struktur, typów danych i instrukcji. Jednak mnogość języków, różnice pomiędzy nimi i możliwość wykorzystania ich do różnych zadań sprawiają, że przeprowadzenie takiej analizy będzie niezwykle czasochłonne, a jednocześnie nie będzie gwarantowało poznania wszystkich koncepcji i paradygmatów programowania. Naukę koncepcji programowania najlepiej rozpocząć od poznania modelowych struktur realizowanych za pomocą modeli obliczeniowych -- konstrukcji definiujących sposób realizacji obliczeń, nie powołujących się na konkretny język.
Książka "Programowanie. Koncepcje, techniki i modele" prezentuje programowanie jako zbiór takich właśnie modeli. Opisuje je w postaci kodów stworzonych w prostym języku podstawowym przeznaczonym dla abstrakcyjnego komputera. W książce przedstawiono zarówno modele ogólne -- programowanie deklaratywne, współbieżność deklaratywną, współbieżność przesyłania komunikatów, stan jawny, programowanie zorientowane obiektowo, współbieżność stanu dzielonego oraz programowanie relacyjne -- jak i modele specjalizowane, takie jak programowanie graficznych interfejsów użytkownika, programowanie rozproszone oraz programowanie z ograniczeniami. Publikacja zawiera wiele fragmentów programów i ćwiczeń. Można je uruchomić w ramach systemu Mozart Programming System -- pakietu programistycznego rozprowadzanego na licencji open source.
* Podstawowe założenia problematyki programowania
* Notacja Backusa-Naura
* Gramatyki kontekstowe i bezkontekstowe
* Zasada działania maszyny abstrakcyjnej
* Typy danych, instrukcje i funkcje
* Drzewa i analiza składniowa
* Metodologie projektowania programów
* Programowanie współbieżne
* Zasady projektowanie i programowanie obiektowego
* Projektowanie interfejsów użytkownika
* Obliczenia rozproszone
Pisanie niezawodnych programów wymaga opanowania koncepcji leżących u ich podstaw. Dzięki tej książce poznasz je wszystkie.
Przystępny kurs programowania dla wszystkich
* Poznaj najpopularniejsze języki programowania
* Zorganizuj sobie pracę przy tworzeniu aplikacji
* Napisz własny program
* Przetestuj aplikacje i usuń błędy
Mimo dynamicznego rozwoju informatyki wśród większości użytkowników komputerów nadal istnieje przekonanie, że programowanie jest zajęciem dla wybrańców posiadających ogromną i niemal tajemną wiedzę. Tymczasem pisanie programów to umiejętność, którą może opanować każdy. Oczywiście nauka programowania wymaga poznania wielu zagadnień teoretycznych i praktycznych, ale nie wymaga od osoby uczącej się żadnych niezwykłych umiejętności. Każdy może poznać zasady pisania programów, zarówno dla celów hobbystycznych, jak i zawodowych.
Książka "Programowanie. Od podstaw" to podręcznik programowania przeznaczony dla osób, które dopiero rozpoczynają swoją komputerową przygodę. Zawiera uniwersalne wiadomości przydatne każdemu programiście niezależnie od tego, co i w jakim języku będzie tworzyć. Czytając ją, poznasz wady i zalety różnych języków programowania, sposoby realizacji typowych zadań programistycznych i metody testowania aplikacji. Dowiesz się, jak komputery przechowują informacje, jakie systemy liczbowe wykorzystuje się w programowaniu i jakie narzędzia będą Ci potrzebne podczas pracy. Zdobędziesz solidne podstawy, które pozwolą Ci na dalsze rozwijanie swoich umiejętności.
* Sposób interpretacji kodu źródłowego przez komputer
* System binarny i szesnastkowy
* Warsztat pracy programisty
* Komentarze w kodach programów
* Definiowanie zmiennych
* Instrukcje warunkowe
* Testowanie i usuwanie błędów
* Projektowanie interfejsów użytkownika
* Operacje na plikach
* Wykorzystywanie rejestru Windows
* Zarządzanie wersjami kodu
* Kompilacja
Przekonaj się, że programowanie nie jest trudne.
Błyskawiczny kurs tworzenia aplikacji WWW w języku C#
C# to całkiem nowy język programowania zaprojektowany przez firmę Microsoft. Wygląda on jak mieszanka C++ i Javy, jest jednak tak prosty jak Visual Basic. Z jego pomocą można tworzyć aplikacje WWW i programy wyposażone w graficzny interfejs użytkownika. Język ten związany jest z platformą .NET, umożliwiającą tworzenie zaawansowanych aplikacji biznesowych działających w środowisku sieciowym, w tym także z technologią budowania dynamicznych serwisów internetowych ASP.NET. Programy działające na platformie .NET można pisać w wielu językach programowania, ale wiele wskazuje na to, że właśnie C# stanie się najpopularniejszym z nich.
Książka "C# i ASP.NET. Szybki start" jest doskonałym podręcznikiem dla początkujących programistów. Jak każda pozycja z serii "Szybki start", składa się z kilkudziesięciu rozdziałów, z których każdy przedstawia kolejne kroki, które należy wykonać, by osiągnąć zamierzony cel. Dodatkową zaletę stanowią liczne ilustracje.
Opisano między innymi:
* Instalację niezbędnego oprogramowania
* Składniki języka C#
* Instrukcje warunkowe i pętle
* Pracę z ciągami znaków
* Programowanie obiektowe w C#
* Korzystanie z tablic i kolekcji
* Delegaty, zdarzenie, obsługę błędów
* Tworzenie dynamicznych serwisów WWW w języku C#
Programista chcący tworzyć zaawansowane aplikacje internetowe ma wybór pomiędzy dwoma platformami: Java 2 EE Suna i .NET Microsoftu. Jeśli wybierze tę drugą, dzięki książce "C# i ASP.NET. Szybki start" szybko będzie mógł tworzyć funkcjonalne aplikacje WWW w nowym, ekscytującym języku C#.
AutoCAD jest bez wątpienia najpopularniejszym w Polsce programem typu CAD, posługuje się nim od bardzo dawna duże grono użytkowników. W trakcie pracy z Auto-CAD-em użytkownicy zdążyli już dokładnie poznać jego narzędzia, jednakże nowe wersje stają się coraz bardziej rozbudowane i oferują coraz więcej możliwości. Wersja 2004 wprowadza między innymi wiele ulepszeń palet narzędzi oraz zwiększoną funkcjonalność Centrum danych projektowych. Dostępny jest również poprawiony Malarz formatów, ExpressTools (znane z wersji 2000), wypełnienia gradientowe i wiele usprawnień dotyczących tworzenia odnośników zewnętrznych.
Ta obszerna pozycja przeznaczona jest zarówno dla początkujących użytkowników AutoCAD-a (mogą oni dzięki niej dogłębnie poznać ten wspaniały program), jak i dla tych, którzy mieli już do czynienia z poprzednimi wersjami tej aplikacji. W książce zamieszczono bardzo wiele bogato ilustrowanych przykładów pokazujących praktyczne zastosowanie omawianych narzędzi.
* Poznasz nowe możliwości AutoCAD-a wprowadzone w wersji 2004
* Poznasz interfejs AutoCAD-a, menu i paski narzędzi
* Nauczysz się otwierać i zapisywać dokumenty
* Poznasz podstawowe obiekty AutoCAD-a i ich właściwości
* Dowiesz się, jak wybierać i modyfikować obiekty
* Nauczysz się tworzyć napisy
* Zaznajomisz się z warstwami i blokami ułatwiającymi tworzenie projektów
* Poznasz Centrum danych projektowych, umożliwiające współdzielenie danych oraz ponowne wykorzystanie istniejących już rysunków lub wybranych ich elementów
* Nauczysz się wykorzystywać regiony i multilinie
* Poznasz techniki wymiarowania, modyfikowanie wymiarów i style wymiarowe
* Dowiesz się, jak modelować w przestrzeni 3D, nauczysz się pracować z bryłami ACIS
* Nauczysz się podstaw renderingu
* Skorzystasz z możliwości standardów CAD
* Połączysz swoje rysunki z danymi zawartymi w bazach danych
* Przyspieszysz swoją pracę za pomocą ExpressTools
* Poznasz podstawy AutoLispu
Książkę uzupełniają dwa CD-ROM, na których znajdziesz demonstracyjną wersję programu AutoCAD 2004, a także liczne rysunki, wykorzystane jako przykłady w tekście i oprogramowanie wspomagające prace z AutoCAD-em w wersjach demonstracyjnych i shareware.
Poznaj świat nowych brzmień i efektów dźwiękowych.
Karta dźwiękowa Creative Sound Blaster Live! oferuje funkcje i wydajność przewyższające wiele profesjonalnych kart. Możliwości tej karty wymagają często niezbędnej i fachowej wiedzy. Bez względu na doświadczenie w posługiwaniu się nią, w tej książce (autorstwa Larsa Ahlzena i Clarence Songa, którzy zajmują się prowadzeniem dwóch najpopularniejszych, nieoficjalnych witryn internetowych poświęconych kartom Live!, Live! Center oraz Alive!) znajdziesz wiele cennych informacji pozwalających na wszechstronniejsze wykorzystanie karty.
W książce zaprezentowano wszelkie niezbędne informacje -- poczynając od tego, jakie funkcje i złącza oferuje karta, poprzez omówienie oprogramowania dołączanego do karty Live!, a na tworzeniu zapisu dźwiękowego i muzyki skończywszy.
Dowiesz się jak:
* Instalować i korzystać z cyfrowych akcesoriów wejścia-wyjścia, takich jak moduły Live!Drive i zyskać w ten sposób szersze możliwości przyłączania urządzeń audio
* Połączyć kartę Sound Blaster Live! z głośnikami multimedialnymi czy systemem kina domowego
* Korzystać z miksera i efektów EAX (ang. Enviromental Audio Extensions)
* Nagrywać dźwięk poprzez odpowiednie ustawienia miksera, a następnie edytować wykonane nagrania
* Wykorzystać funkcje MIDI karty i łączyć ją z instrumentami MIDI.
* Wyszukiwać, tworzyć, odtwarzać i zarządzać plikami SoundFont
* Korzystać z sekwencerów sterujących MIDI i efektami obsługującymi format SoundFont, takimi jak Cakewalk i Cubase
* Łączyć sprzętowe elementy SBLive! (wykorzystując różne złącza, wtyki oraz cyfrowe wejścia i wyjścia)
Na płycie CD-ROM umieszczone zostały pliki muzyczne i dźwiękowe, próbki, klipy audio, pliki SoundFont oraz wybrane programy freeware i shareware.
Książka "Sound Blaster Live! Przewodnik po karcie dźwiękowej" otwiera drzwi do świata nowych brzmień i nieograniczonych możliwości karty Sound Blaster Live!.
W ciągu kilku ostatnich lat przetwarzanie grafiki w czasie rzeczywistym osiągnęło stopień najwyższego zaawansowania. Obecnie powszechnie dostępne są procesory przetwarzania grafiki, które dorównują szybkością i możliwościami najdroższym stacjom graficznym sprzed zaledwie kilku lat.
Jeżeli jesteś gotów na pogłębienie swojej wiedzy na temat programowania grafiki, sięgnij po tę książkę. Opisuje ona zaawansowane zagadnienia w taki sposób, że nawet początkujący przyswajają je łatwo. Czytelnicy, którzy będą studiować tę książkę od początku i dokładnie ją przeanalizują, nie powinni mieć problemu z nauczeniem się coraz bardziej skomplikowanych technik. Czytelnicy zaawansowani mogą wykorzystywać tę książkę jako użyteczne źródło informacji, przeskakując od rozdziału do rozdziału, wtedy kiedy mają potrzebę nauczenia się lub dokładniejszego poznania wybranych problemów.
Książka zawiera:
* Powtórzenie wiadomości o wektorach i macierzach
* Omówienie zagadnień związanych z oświetleniem
* Opis potoków graficznych
* Opis konfiguracji środowiska
* Sposoby korzystania z DirectX
* Dokładne omówienie renderingu
* Opis sposobów nakładania tekstur
* Problemy związane z przezroczystością
* Opis technik vertex shader i pixel shader
* Zasady tworzenia cieni przestrzennych
* Sposoby tworzenia animowanych postaci
... i wiele innych zaawansowanych technik, używanych przez profesjonalnych programistów. Towarzyszą jej cenne dodatki na CD (m.in. Microsoft DirectX® 8.1 SDK, wersja demonstracyjna przeglądarki efektów NVidia®, program do zrzutów video - VirtualDub, wersja demonstracyjna programu trueSpace firmy Caligari®)
Niezależnie od Twojego programistycznego doświadczenia, książka ta może posłużyć Ci jako przewodnik pozwalający na osiągnięcie mistrzostwa w wykorzystaniu możliwości programowania grafiki w czasie rzeczywistym.
Nowoczesne techniki programowania i projektowania pozwalają pisać złożone aplikacje także osobom nie będącym informatykami. Pasjonatom nauk przyrodniczych przychodzi z pomocą projektowanie obiektowe: dzięki zastosowaniu gotowych obiektów mogą oni symulować komputerowo zjawiska występujące w przyrodzie. Programowanie zorientowane obiektowo wymaga przede wszystkim bardzo dokładnych opisów funkcjonalnych obiektów; szczegóły techniczne, realizatorskie i znajomość ich konstrukcji wewnętrznej nie są tu ważne.
Książka C++Builder. Symulacje komputerowe przedstawia kilkanaście programów symulujących rozmaite zjawiska występujące w przyrodzie. Programy te zostały napisane w języku C++ (użyto dialektu C++Builder Borlanda). Zastosowano w nich gotowe klasy, które możesz odnaleźć na dołączonym do książki krążku CD, można je rozbudowywać i wykorzystywać we własnych programach. Osoby zainteresowane tajnikami programowania obiektowego poznają szczegóły konstrukcji obiektów, przyrodnicy mogą pominąć bardziej techniczne fragmenty i skoncentrować się na modelowaniu zjawisk przyrodniczych.
Programy opisane w książce dotyczą:
* Widma światła białego
* Drgań i fal prostych
* Fal na wodzie i ich interferencji
* Interferencji światła
* Postrzegania głębi i geometrii 3D
* Fotografii relatywistycznej
* Algorytmów wzrostu
* Tworzenia wirtualnych przestrzeni za pomocą techniki śledzenia promieni (ray-tracing)
Programowanie obiektowe jest to jedyna technika szybkiego tworzenia aplikacji z wykorzystaniem istniejących, uniwersalnych algorytmów. Jeśli jesteś interesujesz się fizyką czy biologią, książka udowodni Ci, że nie musisz kończyć studiów informatycznych, by modelować komputerowo interesujące Cię zjawiska.
Dzięki lekturze tej książki:
* Przeniesiesz na ekran komputera złożone zjawiska fizyczne i procesy biologiczne
* Poznasz tajemnice kreowania wirtualnych, trójwywmiarowych przestrzeni
* Nauczysz się korzystać z programowania obiektowego
* Będziesz potrafił pisać złożone programy w prosty sposób, korzystając z gotowych obiektów.
Nawet najbardziej zaawansowane, profesjonalne aplikacje stają się łatwe w obsłudze, gdy dysponujesz odpowiednim podręcznikiem. Książka "AutoCAD 2004 Pierwsze kroki" to pozycja skierowana do osób, które z AutoCAD-em stykają się po raz pierwszy. Napisana w przystępny sposób, bez zagłębiania się w wyrafinowane niuanse i detale, pozwoli Ci szybko rozpocząć tworzenie własnych projektów w jednym z najpopularniejszych narzędzi CAD. Książka może służyć do samodzielnej nauki, jest też doskonałym podręcznikiem, który z powodzeniem może być wykorzystywany na kursach AutoCAD-a w jego najnowszej wersji.
* Stwórz swój pierwszy rysunek.
* Poznaj podstawowe obiekty AutoCAD-a, takie jak: odcinek, prostokąt, okrąg, łuk, wielobok, polilinia, obszar i pierścień.
* Naucz się oglądać rysunek wykorzystując wygodne narzędzia AutoCAD-a, takie jak: powiększanie i zmniejszanie, szybkie powiększanie, powiększanie okna, powiększanie do zakresu i do granic oraz przesuwanie rysunku na ekranie.
* Zadbaj o dokładność swojej pracy stosując punkty charakterystyczne, takie jak: środek, koniec, punkt przecięcia, punkt styczny itp. Zapoznaj się również ze śledzeniem punktów charakterystycznych.
* Naucz się usuwać i modyfikować obiekty przez ich przesuwanie, kopiowanie, odcinanie, wydłużanie, zaokrąglanie, fazowanie, rozciąganie, skalowanie, obracanie i odbicie lustrzane.
* Zwiększ czytelność rysunku stosując kreski różnego typu i różnej grubości.
* Zastosuj skok i siatkę w celu poprawienia dokładności rysunku.
* Wykonaj automatyczne kreskowanie obszarów zamkniętych.
* Poznaj właściwości obiektów oraz zastosuj menedżera właściwości służącego do ich modyfikacji.
* Umieść na rysunku czytelne napisy i wymiary.
* Naucz się tworzyć i wstawiać bloki oraz wykorzystaj warstwy.
* Usprawnij rysowanie posługując się centrum danych projektowych.
* Wydrukuj rysunek.
Im cenniejsze dane udostępniane są za pomocą sieci komputerowych, tym istotniejsze staje się ich zabezpieczenie. Nie od dziś wiadomo, że sieci oparte na Microsoft Windows, mimo pozornej łatwości obsługi systemów operacyjnych z tej rodziny, nie należą do sieci łatwych do zabezpieczenia i wymagają od administratora bardzo rozległej, szczegółowej i często trudno dostępnej wiedzy. Znajdziesz ją w książce "Bezpieczeństwo w sieciach Windows". To obszerne kompendium zawiera zarówno informacje podstawowe, jak i techniczne szczegóły niezbędne każdemu administratorowi sieci.
Autor podzielił książkę na trzy części. W pierwszej, "Zagrożenia", opisane zostało ryzyko związane z podłączeniem komputera do sieci Microsoft Windows. Druga część zawiera opis podstawowych metod zabezpieczenia komputerów podłączonych do sieci MS Windows. Trzecia część książki, "Wykorzystanie kryptografii", zawiera opis bardziej skomplikowanych i trudniejszych do pokonania kryptograficznych metod zabezpieczenia danych.
Książka opisuje m.in.:
* Najczęstsze techniki używane przez hakerów
* Sposoby fizycznego zabezpieczania sieci
* Bezpieczne nadawanie uprawnień użytkownikom
* ActiveDirectory i DNS
* Metody autoryzacji
* Protokół RADIUS
* Udostępnianie zasobów w sieci
* Tworzenie i zabezpieczanie wirtualnych sieci prywatnych
* Zabezpieczenie komputerów przed atakami z internetu
* Monitorowanie i reagowanie na naruszenie zasad bezpieczeństwa
* Podstawowe techniki kryptograficzne
* Infrastrukturę kluczy publicznych, certyfikaty
* Zabezpieczanie usług internetowych
Marcin Szeliga jest posiadaczem wielu certyfikatów firmy Microsoft (Microsoft Certified System Engineer, Microsoft Certified Database Administrator, Microsoft Certified Solution Developer) Jest również autorem licznych książek dotyczących systemów Windows wydanych przez wydawnictwo Helion.
AutoCAD jest bez wątpienia najpopularniejszym w Polsce programem typu CAD, posługuje się nim od bardzo dawna duże grono użytkowników. W trakcie pracy z AutoCAD-em użytkownicy zdążyli już dokładnie poznać jego narzędzia, jednakże nowe wersje stają się coraz bardziej rozbudowane i oferują coraz więcej możliwości. Wersja 2004 PL wprowadza między innymi wiele ulepszeń palet narzędzi oraz zwiększoną funkcjonalność Centrum danych projektowych. Dostępny jest również poprawiony Malarz formatów, ExpressTools (znane z wersji 2000), wypełnienia gradientowe i wiele usprawnień dotyczących tworzenia odnośników zewnętrznych.
Ta obszerna pozycja przeznaczona jest zarówno dla początkujących użytkowników AutoCAD-a (mogą oni dzięki niej dogłębnie poznać ten wspaniały program), jak i dla tych, którzy mieli już do czynienia z poprzednimi wersjami tej aplikacji. W książce zamieszczono bardzo wiele bogato ilustrowanych przykładów pokazujących praktyczne zastosowanie omawianych narzędzi.
* Poznasz nowe możliwości AutoCAD-a wprowadzone w wersji 2004 PL
* Poznasz interfejs AutoCAD-a, menu i paski narzędzi
* Nauczysz się otwierać i zapisywać dokumenty
* Poznasz podstawowe obiekty AutoCAD-a i ich właściwości
* Dowiesz się, jak wybierać i modyfikować obiekty
* Nauczysz się tworzyć napisy
* Zaznajomisz się z warstwami i blokami ułatwiającymi tworzenie projektów
* Poznasz Centrum danych projektowych, umożliwiające współdzielenie danych oraz ponowne wykorzystanie istniejących już rysunków lub wybranych ich elementów
* Nauczysz się wykorzystywać regiony i multilinie
* Poznasz techniki wymiarowania, modyfikowanie wymiarów i style wymiarowe
* Dowiesz się, jak modelować w przestrzeni 3D, nauczysz się pracować z bryłami ACIS
* Nauczysz się podstaw renderingu
* Skorzystasz z możliwości standardów CAD
* Połączysz swoje rysunki z danymi zawartymi w bazach danych
* Przyspieszysz swoją pracę za pomocą ExpressTools
* Poznasz podstawy AutoLispu
Książkę uzupełniają dwie płyty CD-ROM, na których znajdziesz demonstracyjną wersję programu AutoCAD 2004 PL, a także liczne rysunki, wykorzystane jako przykłady w tekście i oprogramowanie wspomagające prace z AutoCAD-em w wersjach demonstracyjnych i shareware.
W 2002 roku firma Borland zaprezentowała na polskim rynku nową wersję narzędzia typu RAD, służącego do szybkiego tworzenia aplikacji - Delphi. Jest to już 7. wersja tego popularnego pakietu. Wprowadzono sporo nowości: poprawiono środowisko programistyczne IDE, dodano nowe komponenty VCL i wprowadzono kilka zmian w bibliotece uruchomieniowej. Delphi 7 zostało także przystosowane do platformy .NET Microsoftu.
Jeśli chcesz szybko zapoznać się z możliwościami nowego Delphi, książka "Delphi 7. Ćwiczenia zaawansowane" to idealny przewodnik dla Ciebie. Znajdziesz tu wiele ćwiczeń dotyczących różnych obszarów zaawansowanego wykorzystania Delphi; od programowania baz danych po programowanie internetowe.
Dzięki książce poznasz:
* Zmiany i nowości wprowadzone w Delphi 7
* Programowanie sieciowe w Delphi 7: korzystanie z gniazd i protokołów SMTP i HTTP
* Tworzenie kontrolek ActiveX
* Szybkie pisanie aplikacji internetowych z użyciem komponentów IntraWeb
* Sposoby korzystania z baz danych za pomocą dbExpress
* Metody pozyskiwania z poziomu Delphi informacji o sprzęcie i oprogramowaniu, sterowanie procesami
Książka "Oracle9i. Administrowanie bazami danych od podstaw" krok po kroku wyjaśnia sposoby efektywnego administrowania bazą danych Oracle. Poznasz dzięki niej najważniejsze nowe funkcje baz danych Oracle9, zaznajomisz się z zadaniami czekającymi administratora baz danych, a także poznasz wiele cennych wskazówek, ułatwiających codzienną pracę z Oraclem.
Jeśli jeszcze nie miałeś styczności z zaawansowanymi systemami bazodanowymi, znalazłeś właśnie doskonałe źródło informacji, dzięki któremu zdobędziesz wiele poszukiwanych na rynku pracy umiejętności.
Książka jest idealnym źródłem wiedzy dla początkujących administratorów na temat:
* Instalacji i konfiguracji wydajnej bazy danych Oracle
* Kontroli działania bazy danych za pomocą perspektyw DBA_ i V$
* Wykorzystania różnych poziomów ochrony danych
* Monitorowania i dostrajania bazy danych
* Stosowania narzędzi i programów Oracle
* Utrzymywania niezawodności i stałego dostępu do bazy danych
* Sposobów zapewnienia maksymalnej wydajności serwera bazodanowego
* Wykonywania kopii zapasowych i odtwarzania bazy danych
Jeśli pierwsze kroki w systemie Windows XP masz za sobą, a chcesz jeszcze sprawniej go obsługiwać, trzymasz w ręku właściwą książkę. Za pomocą praktycznych ćwiczeń odkryje ona przed Tobą wiele tajemnic Windows XP, które pozwolą Ci w jeszcze większym stopniu wykorzystać jego bogate możliwości. Obok ćwiczeń opisujących jak "przekonać" system Windows XP, aby pracował tak jak sobie tego życzymy, znajdują się w niej opisy darmowych programów rozszerzających funkcjonalność tego środowiska lub pomagających diagnozować i rozwiązywać konkretne problemy.
Opisano między innymi:
* Różne sposoby instalacji Windows XP, w tym instalację sieciową
* Rejestr systemu
* Środowisko użytkownika: automatyczne logowanie, przyspieszanie restartu, tworzenie ikonek i wiele innych przydatnych tricków
* Pracę Windows XP w sieci
* Administrację systemem
* Rozmaite sposoby zabezpieczania Windows XP
* Optymalne wykorzystanie twardych dysków,
* Rozwiązania najczęściej pojawiających się problemów z Windows XP
Wykład pochodzi ze szkolenia wprowadzającego do Obywatelskiego Monitoringu Funduszu Korkowego. Odbyło się ono w Miedzeszynie w dniach 29 listopada - 1 grudnia 2013 r.
W prezentacji pokazane zostały różne aspekty dostępu do informacji publicznej - praktyka, problemy, orzecznictwo w tej sprawie.
Autor: Krzysztof Izdebski - pracownik Sieci Obywatelskiej - Watchdog Polska. Ukończył prawo na Uniwersytecie Warszawskim. Obecnie pisze doktorat na tej samej uczelni. Pełni dyżury w biurze stowarzyszenia i odpowiada na pytania zadawane drogą elektroniczną.
Prowadzi szkolenia z zakresu dostępu do informacji publicznej w ramach Pozarządowego Centrum DIP, jak też dla innych organizacji, w tym Fundacji Rozwoju Demokracji Lokalnej. Współautor internetowego kursu na temat dostępu do informacji publicznej. Przygotowuje opinie SLLGO w zakresie nowelizacji ustawy o dostępie do informacji publicznej. Stale się kształci - uczestnicząc w konferencjach, sprawach sądowych i rozwiązując przypadki napływające do Pozarządowego Centrum Dostępu do Informacji Publicznej.
Przekazujemy w Państwa ręce już czwarty raport
dotyczący rynku medycznego w Polsce, przygotowany przez Magellan SA wspólnie z niezależną agencją badań.
Doskonały podręcznik dla początkujących programistów
* Typy danych i konstrukcje sterujące
* Programowanie proceduralne i obiektowe
* Biblioteka STL
* Obsługa plików
C++ to jeden z najpopularniejszych języków programowania, jego możliwości są ogromne. Używa się go do pisania aplikacji narzędziowych, gier, a nawet systemów operacyjnych. Nauka języka C++ jest jednak żmudnym i skomplikowanym procesem -- to prawdziwe wyzwanie dla programistów. Opanowanie potęgi C++ wymaga poznania zasad programowania obiektowego, korzystania z bibliotek i szablonów, obsługi błędów i wyjątków i wielu innych zagadnień. Ale odpowiednio napisany podręcznik, zawierający podstawową wiedzę na temat tego języka, zdecydowanie ułatwi przyswojenie sztuki programowania w C++.
Książka "Język C++. Szkoła programowania. Wydanie V" to właśnie taki podręcznik. Jego autor Stephen Prata przedstawia C++ w sposób idealnie nadający się dla początkujących programistów chcących opanować tajniki tego języka. Czytając tę książkę, poznasz historię języka C i jego najważniejsze elementy, dowiesz się, czym różni się programowanie proceduralne od obiektowego i jak stosować te dwie techniki, korzystając z C++. Nauczysz się definiować klasy i obiekty, przydzielać zasoby pamięci dla aplikacji, korzystać ze wskaźników i implementować mechanizmy obsługi plików i strumieni wejścia-wyjścia.
* Kompilatory języka C++
* Struktura programu
* Proste i złożone typy danych
* Pętle i instrukcje warunkowe
* Definiowanie funkcji i korzystanie z nich
* Model pamięci w C++
* Podstawowe elementy programowania obiektowego -- obiekty i klasy
* Dynamiczne przydzielanie pamięci
* Mechanizmy dziedziczenia
* Obsługa wyjątków
* Biblioteka STL
* Operacje wejścia-wyjścia
Poznaj najważniejsze zasady programowania w C++.
RS 232C - praktyczne programowanie. Od Pascala i C++ do Delphi i Buildera. Wy...Wydawnictwo Helion
Na uczelniach, w szkołach i biurach pojawia się coraz więcej zaawansowanych urządzeń komputerowych podłączanych przez port szeregowy. Czy koniecznie trzeba płacić wysokie stawki informatykom, aby wykorzystać pełnię możliwości tych nowoczesnych narzędzi? Na szczęście nie. Obsługa transmisji szeregowej przy użyciu standardu RS 232C może być na tyle łatwa, że uczniowie, studenci, nauczyciele, pracownicy naukowi czy inżynierowie mogą samodzielnie tworzyć potrzebne im oprogramowanie.
Dzięki książce "RS 232C -- praktyczne programowanie. Od Pascala i C++ do Delphi i Buildera. Wydanie III" także i Ty szybko nauczysz się pisać programy sterujące urządzeniami podłączanymi przez port szeregowy. Dowiesz się, jak działa transmisja asynchroniczna oraz czym jest standard RS 232C. Poznasz interfejs RS 232C dla systemu Windows i nauczysz się go używać w środowiskach programistycznych Builder i Delphi, co pozwoli Ci pisać potrzebne oprogramowanie w języku Pascal lub C++. Najnowsze, poprawione wydanie zawiera jeszcze więcej przykładów, dzięki którym błyskawicznie będziesz mógł sprawdzić nabytą wiedzę w praktyce.
* Standard RS 232C
* Transmisja asynchroniczna
* Obsługa RS 232C w systemach MS-DOS i Windows
* Wykorzystanie elementów interfejsu Windows API w środowiskach Builder i Delphi
* Testowanie programów do obsługi transmisji szeregowej
* Tworzenie aplikacji wielowątkowych
* Narzędzia graficzne
* Przykładowe aplikacje i ich analiza
* Specyfikacje najważniejszych funkcji
Książka "Język C. Wskaźniki. Vademecum profesjonalisty" przeznaczona jest dla zaawansowanych studentów i profesjonalistów, zapewniając obszerne źródło informacji dla tych, którzy potrzebują dogłębnego omówienia języka C. Dokładne wyjaśnienie podstaw oraz przegląd zaawansowanych funkcji pozwala programistom skorzystać z siły wskaźników w języku C. Dokładny opis idiomów programowych oraz gruntowna dyskusja zaawansowanych tematów powoduje, że książka jest nieocenionym podręcznikiem i informatorem dla studentów i zawodowych programistów.
* Zawiera wszystko, co jest niezbędne do dogłębnego poznania języka C
* Dokładnie opisuje wskaźniki, ich składnię, techniki efektywnego użycia oraz często stosowane idiomy programistyczne, w których występują wskaźniki
* Porównuje różne metody implementacji często stosowanych abstrakcyjnych typów danych
* Zawiera wskazówki na temat efektywności, przenośności i zagadnień inżynierii programowania, jak również ostrzeżenia o często popełnianych błędach
* Oferuje prosty, konwersacyjny styl, jasno opisujący trudne tematy, zawiera wiele ilustracji i diagramów pomagających z wizualizacji skomplikowanych zagadnień
* Opisuje wszystkie funkcje z biblioteki standardowej C.
O autorze:
Kenneth A. Reek jest profesorem informatyki w Rochester Institute of Technology i doświadczonym programistą, który pracował w wielu firmach jako konsultant. Książka ta powstała po dziewięciu latach prowadzenia seminariów z programowania w C.
[więcej...]
Kompletny przewodnik po środowisku C++ Buildera
C++ Builder to zgodne ze standardem ANSI C++ środowisko szybkiego tworzenia aplikacji (RAD) w systemie Windows. Dzięki C++ Builder można tworzyć zarówno aplikacje typu "desktop", jak również aplikacje rozproszone i internetowe. "C++ Builder 6. Vademecum profesjonalisty" dostarczy Ci aktualnych informacji na temat najnowszych możliwości tego środowiska. Poznasz między innymi technologie DataSnap, C++ Mobile, XML, BizSnap, dbExpress.
Książka ta była pisana z myślą o aktualnych i przyszłych użytkownikach środowiska C++ Builder. Jest to poradnik dla programistów, a jego podstawowym zadaniem jest poszerzenie wiedzy na temat środowiska C++ Builder i związanych z nim technologii; opis najnowszych funkcji wprowadzonych w wersji 6 środowiska oraz ułatwienie tworzenia wydajnego i użytecznego oprogramowania. Choć większość rozdziałów adresowana jest do średnio zaawansowanych i zaawansowanych użytkowników, zostały one ułożone w taki sposób, że stopień trudności rośnie wraz z numerami rozdziałów, więc początkujący programiści nie powinni mieć większych problemów ze zrozumieniem opisywanych koncepcji.
* Naucz się tworzyć mobilne aplikacje korzystając z Borland C++Mobile Edition
* Poznaj sposoby przetwarzania i transformacji dokumentów XML
* Twórz usługi sieciowe wykorzystując BizSnap oraz WSDL i SOAP
* Pisz aplikacje rozproszone za pomocą DataSnap
* Uzyskaj dostęp do baz danych niezależnie od platformy wykorzystując dbExpress
* Poznaj sztuczki i chwyty stosowane przy pisaniu aplikacji graficznych i multimedialnych
* Poszerz możliwości środowiska programistycznego za pomocą OpenToolsAPI
* Poznaj tajniki Windows 32 API i wykorzystaj je w swoich aplikacjach
Doświadczenie i bogata wiedza autorów „C++Builder 6. Vademecum profesjonalisty" to gwarancja rzetelności tej książki. Jeśli programujesz w C++ Builder, jest Ci ona po prostu niezbędna.
Struktura organizacyjna i architektura systemów komputerowychWydawnictwo Helion
Komputery już dawno stały się zjawiskiem powszechnym i nie są już traktowane jak magiczne skrzynki. Praktycznie wszyscy znają już możliwości ich praktycznego wykorzystania. W dobie intuicyjnych systemów operacyjnych, technologii plug-and-play i postępującego uproszczenia wszelkich operacji związanych z komputerami wiedza o architekturze i organizacji systemów komputerowych może wydawać się potrzebna jedynie wąskiej grupie specjalistów-sprzętowców. Jest jednak inaczej. Ogólna znajomość tego, co kryje się pod "maską" komputera potrzebna jest każdemu użytkownikowi komputera. Dzięki niej programista zrozumie, z czego wynikają błędy w działaniu programu, twórca systemów czasu rzeczywistego zoptymalizuje wykorzystanie procesora przez system, a osoba decydująca się na zakup nowego sprzętu we właściwy sposób zinterpretuje "obiektywne" testy przytaczane przez producentów w materiałach reklamowych.
Struktura organizacyjna i architektura systemów komputerowych to przystępne omówienie organizacji i architektury współczesnych komputerów. Książka, stworzona zgodnie z założeniami komitetu ACM-IEEE Computing Curricula 2001, nadaje się idealnie jako podręcznik dla kursu wprowadzającego w tą tematykę. Zawarte w niej zagadnienia zilustrowane są licznymi przykładami zaczerpniętymi z rzeczywistego świata, co dodatkowo ułatwia ich zrozumienie.
* Historia rozwoju komputerów.
* Sposoby przedstawiania danych, notacje i kody.
* Logika binarna i algebra Boole’a.
* Organizacja pracy systemu komputerowego, cykle maszynowe, magistrala, lista rozkazów, asembler.
* Tryby adresowania.
* Przechowywanie danych w pamięci komputera.
* Narzędzia programistyczne i systemy operacyjne.
* Alternatywne architektury komputerów.
* Analiza wydajności systemów komputerowych.
* Sieci komputerowe.
Doskonale dobrane proporcje pomiędzy objętością tekstu i poziomem szczegółowości oraz opisywanie wyłącznie istotnych aspektów zagadnienia powodują, że książka stanowi doskonałe źródło naprawdę przydatnej wiedzy.
Poznaj jedno z najpopularniejszych narzędzi programistycznych
Środowisko programistyczne Delphi od lat cieszy się zasłużoną popularnością wśród twórców oprogramowania. Potężne narzędzie programistyczne, oparte na popularnym języku Pascal, było prekursorem środowisk wizualnych, w których tworzenie aplikacji przypomina budowanie modelu z klocków. Kolejne wersje Delphi były wykorzystywane do tworzenia przeróżnych aplikacji -- począwszy od prostych programików, a skończywszy na rozbudowanych systemach bazodanowych. Najnowsza wersja, oznaczona symbolem 2006, umożliwia tworzenie aplikacji dla platformy .NET oraz "tradycyjnych" aplikacji Win32.
Książka "ABC Delphi 2006" to wprowadzenie do programowania w tym środowisku. Na praktycznych przykładach przedstawia najnowszą wersję Delphi, język Object Pascal oraz filozofię tworzenia aplikacji na podstawie komponentów VCL. Czytając ją, poznasz środowisko programistyczne, elementy języka Object Pascal oraz zasady programowania strukturalnego i obiektowego. Nauczysz się budować własne aplikacje dla systemu Windows oraz wykorzystywać i tworzyć komponenty VCL. Zdobędziesz solidne podstawy do dalszej nauki programowania w Delphi.
* Struktura projektu w Delphi
* Typy danych i zmienne
* Instrukcje sterujące, pętle i wyrażenia warunkowe
* Programowanie obiektowe
* Wykrywanie i usuwanie błędów w kodzie
* Korzystanie z komponentów VCL
* Programowanie grafiki
* Operacje na plikach i drukowanie
* Zapisywanie informacji w rejestrze Windows
* Projektowanie komponentów
Pobierz rozdziały: 12, 13 i 14 jako pliki PDF.
Visual C++ 2005 Express Edition. Tworzenie aplikacji dla WindowsWydawnictwo Helion
Stwórz aplikacje dla platformy .NET 2.0
* Poznaj środowisko programistyczne
* Wykorzystaj możliwości programowania obiektowego
* Połącz aplikację z bazą danych i siecią
Środowisko programistyczne Visual C++ 2005 Express Edition to uproszczona i okrojona wersja Visual C++ 2005. Mimo tego jest bardzo przydatnym i wydajnym narzędziem dla programisty chcącego tworzyć aplikacje dla platformy .NET. Umożliwia korzystanie z bibliotek .NET Framework ułatwiających żmudny proces tworzenia aplikacji. Jest świetnym narzędziem nie tylko dla początkującego twórcy aplikacji, ale także dla tych programistów, którzy nie potrzebują zaawansowanych środowisk w wersjach Enterprise.
Książka "Visual C++ 2005 Express Edition. Tworzenie aplikacji dla Windows" to podręcznik, dzięki któremu poznasz możliwości tego środowiska programistycznego tworząc własne aplikacje. Dowiesz się, jak zaprojektować interfejs użytkownika korzystając z komponentów zawartych w .NET Framework. Nauczysz się łączyć aplikacje z bazami danych oraz z siecią Internet. Przeczytasz także o obsłudze plików graficznych i dźwiękowych oraz drukowaniu. Znajdziesz tu również dodatek, w którym opisano podstawy programowania w języku C++.
* Określanie parametrów nowego projektu w Visual C++ 2005 Express Edition
* Kompilacja i uruchamianie aplikacji
* Podstawy programowania obiektowego
* Tworzenie graficznych interfejsów użytkownika
* Połączenia z bazami danych i internetem
* Programowanie wielowątkowe
* Drukowanie grafiki i dokumentów
Rozwiń swoje umiejętności programowania oraz tworzenia profesjonalnych aplikacji dla platformy .NET 2.0
Przysłowie "kto pyta, nie błądzi" nie zawiera całej prawdy. Nie wystarczy pytać, trzeba jeszcze znajdować odpowiedzi. Książka "Programowanie w języku C. FAQ" to zbiór kilkuset odpowiedzi na najczęściej zadawane pytania na temat tego języka programowania. Z pewnością część z przedstawionych tu pytań już pojawiła się w Twojej praktyce programistycznej (pamiętasz, ile czasu straciłeś poszukując odpowiedzi?). Inne problemy dopiero się pojawią i jeśli na Twojej półce będzie ta książka, szybko znajdziesz w niej zwięzłe, ale wyczerpujące rozwiązanie często wzbogacone przykładem kodu źródłowego.
Chociaż książka żadną miarą nie powinna być traktowana jako podręcznik, z którego można nauczyć się programowania w C, z pewnością przyda się każdej osobie używającej tego języka w codziennej praktyce. Autor porusza wiele przydatnych zagadnień obejmujących szeroki zestaw tematów.
Omówiono między innymi:
* Deklaracje
* Struktury i unie
* Puste wskaźniki
* Wyrażenia
* Makroprocesor
* Alokację pamięci
* Różnice między standardami C
* Standardową bibliotekę wejścia-wyjścia
* Kwestie związane z systemami operacyjnymi
Kompendium wiedzy dla programistów aplikacji bazodanowych w C++
* Poznaj C++Builder 6 i dostępne w nim komponenty
* Stwórz model aplikacji w języku UML
* Wykorzystaj różne mechanizmy połączenia z bazą danych
C++Builder 6, mimo pojawienia się na rynku nowszej wersji tego środowiska, nadal cieszy się dużą popularnością wśród programistów. Wizualne środowisko programowania i gotowe komponenty znacznie przyspieszają proces tworzenia aplikacji. Możliwości C++Buildera 6 pozwalają na stworzenie aplikacji korzystających z różnych systemów zarządzania bazami danych, jednak proces przygotowania połączenia z bazą i manipulowania danym w niej zgromadzonymi jest inny dla każdego z nich.
Książka "C++Builder 6 i bazy danych" to podręcznik dla tych programistów i użytkowników C++Buildera 6, którzy w tworzonych przez siebie aplikacjach wykorzystują różne systemy baz danych. Opisuje środowisko C++ Builder 6, elementy języka C++ oraz metody modelowania aplikacji i tabel baz danych za pomocą języka UML, a przede wszystkim -- sposoby powiązania tworzonych aplikacji z większością dostępnych na rynku systemów zarządzania bazami danych. Przedstawia technologie ADO i ODBC, język SQL i możliwości zastosowania języka XML w aplikacjach bazodanowych.
* Komponenty środowiska C++Builder 6
* Zaawansowane techniki programowania w C++
* Korzystanie z bibliotek DLL i VCL
* Zastosowanie języka UML do tworzenia modelu aplikacji
* Praca ze środowiskiem CVS
* Elementy języka SQL
* Technologia ADO
* Połączenie aplikacji z bazą MySQL, dbExpress
* Interfejsy ODBC
* Systemy Interbase i BDE
* Język XML w bazach danych
Jeśli chcesz być przygotowany do napisania aplikacji korzystającej z dowolnej bazy danych, przeczytaj tą książkę
Dodatkowe przyklady do książki można pobrać z naszego serwera FTP.
Programowanie obiektowe w Visual Basic .NET dla każdegoWydawnictwo Helion
Visual Basic to język programowania pozwalający nawet początkującym programistom pisać zaawansowane aplikacje wykorzystujące wszystkie możliwości systemów operacyjnych z rodziny Windows. Jego kolejne wersje w coraz większym stopniu korzystały z technik programowania zorientowanego obiektowo (OOP). Najnowsza z nich, Visual Basic .NET jest uwieńczeniem tej ewolucji.
Jeśli chcesz tworzyć aplikacje w VB .NET, musisz nauczyć się programować obiektowo. Z pewnością pomoże Ci w tym książka „Programowanie obiektowe w Visual Basic .NET”. Informacje w niej zawarte przydadzą się także, gdy zaczniesz używać innych języków programowania opartych na obiektach, takich jak C++, C# czy Java.
Ten podręcznik, łączący praktyczne ćwiczenia z niezbędną dawką przydatnej teorii, nauczy Cię samodzielnie tworzyć aplikacje używające obiektów, dziedziczenia, poliformizmu i sterowania za pomocą zdarzeń. Dowiesz się również jak obsługiwać błędy. Odrębne rozdziały poświęcono obiektom zdalnym (aplikacjom klient-serwer), udostępnianiu aplikacji poprzez Internet tworzeniu atrakcyjnego interfejsu użytkownika oraz językowi XML. Poznasz także środowisko projektowe Visual Studio .NET. Swoją wiedzę będziesz mógł sprawdzić za pomocą licznych quizów.
Książka zawiera:
* Wprowadzenie do programowania obiektowego w Visual Basic .NET
* Wyjaśnienie terminologii związanej z programowaniem obiektowym
* Omówienie środowiska Visual Studio .NET oraz tworzenia interfejsów użytkownika za pomocą Windows Forms i WebForms
* Praktyczne ćwiczenia i quizy sprawdzające wiedzę
Język C# został opracowany w firmie Microsoft i wywodzi się z rodziny C/C++, choć zawiera również wiele elementów znanych programistom Javy, jak na przykład mechanizmy automatycznego odzyskiwanie pamięci. Łączy więc w sobie wszystko to, co najlepsze w Javie i C++, a dodatkowo pozwala na wygodne korzystanie z klas wchodzących w skład platformy .NET.
Dzięki książce "C#. Ćwiczenia" nauczysz się programować w C# niezależnie od tego, czy znasz już C++ lub Javę. Kilkadziesiąt ćwiczeń pozwoli Ci poznać język C# od podstaw po zagadnienia zaawansowane. Zaletą książki jest zwięzły i przystępny opis prezentowanych zagadnień i nastawienie na praktykę programistyczną, a nie na rozważania teoretyczne.
Poznasz:
* Środowisko uruchomieniowe C# i Visual Studio
* Zmienne, operatory i typy danych
* Instrukcje C#
* Podstawy programowania obiektowego, tworzenie klas, metod i konstruktorów
* Użycie tablic w C#
* Obsługę błędów za pomocą wyjątków
* Interfejsy i rzutowanie
* Obsługę zdarzeń
* Korzystanie z komponentów interfejsu użytkownika Windows
Język C++. Standardy kodowania. 101 zasad, wytycznych i zalecanych praktykWydawnictwo Helion
Czytelny i przejrzysty kod to podstawa sprawnego tworzenia aplikacji. W przypadku pracy zespołowej stosowanie wspólnego standardu kodowania to konieczność. Pisanie kodu w oparciu o określone standardy kodowania przyspiesza powstawanie programu, ułatwia komunikację pomiędzy członkami zespołu i pozwala na szybkie wdrożenie nowych programistów do projektu. Oczywiście, w każdej firmie lub zespole można ustalić własny standard kodowania -- ważne jest jednak, aby opierał się na określonych regułach, wynikających ze specyfiki języka programowania.
Książka "Język C++. Standardy kodowania. 101 zasad, wytycznych i zalecanych praktyk" zawiera opis wspomnianych reguł. Przedstawia zasady pisania kodu źródłowego i standaryzowania określonych zapisów, operacji i sposobów wykorzystania elementów języka C++. Każda z zasad jest szczegółowo omówiona i poparta praktycznymi przykładami. Książka prezentuje najlepsze ze znanych praktyk -- zarówno "starych", jak i tych, które całkiem niedawno uległy standaryzacji, oraz opisuje techniki, o których nie słyszeli nawet programiści z wieloletnim doświadczeniem.
* Organizacja kodu
* Styl projektowy i styl kodowania
* Skalowalność kodu
* Racjonalna i efektywna obsługa błędów
* Prawidłowe stosowanie elementów języka
* Odpowiednie korzystanie z STL
* Bezpieczeństwo typów
Usprawnij pracę, stosując standardy kodowania -- gdy za parę miesięcy będziesz musiał wrócić do swoich dzisiejszych programów, przekonasz się, że było warto.
Poznaj nowoczesne metody tworzenia gier komputerowych
* Wykorzystaj najefektywniejsze techniki oferowane przez C++
* Popraw czytelność kodu i wydajność programów
* Zastosuj wzorce projektowe
Rynek gier komputerowych jest niezwykle wymagający. Gracze stawiają tego rodzaju programom coraz wyższe wymagania, co z kolei przekłada się na konieczność stosowania coraz doskonalszych technik ich tworzenia. Będąc programistą gier komputerowych, na pewno doskonale zdajesz sobie z tego sprawę. Jeśli chcesz, aby kolejna stworzona przez Ciebie gra spełniała oczekiwania nawet najbardziej wybrednych graczy, wykorzystaj język C++. Jego możliwości sprawiają, że jest doskonałym narzędziem do tworzenia gier.
"C++ dla programistów gier. Wydanie II" to przewodnik po języku C++ opisujący go z punktu widzenia programowania specyficznych aplikacji, jakimi są gry. Książka przedstawia najefektywniejsze techniki C++ i metody rozwiązywania problemów, przed którymi stają programiści gier. Czytając ją, dowiesz się, jak zarządzać pamięcią i stosować wzorce projektowe oraz STL. Poznasz możliwości wykorzystania języków skryptowych do usprawnienia procesu tworzenia gry komputerowej. Każde z rozwiązań opatrzone jest przykładem, dzięki czemu łatwo będzie Ci zaimplementować je w swoich pracach.
* Podstawy języka C++
* Korzystanie z szablonów
* Obsługa wyjątków
* Zarządzanie pamięcią
* Poprawa wydajności aplikacji
* Wzorce projektowe
* Biblioteka STL
* Stosowanie języków skryptowych
* Zarządzanie obiektami
* Serializacja
Dołącz do elitarnej grupy programistów gier komputerowych.
Przygotuj projekt systemu informatycznego,
który naprawdę spełni oczekiwania użytkowników
* Wybierz technologię, platformę sprzętową i model licencjonowania
* Zadbaj o funkcjonalność i łatwość rozbudowy systemu
* Zabezpiecz system przed piractwem, kradzieżą i utratą danych
Termin "architektura oprogramowania" kojarzy się zwykle z doborem języka programowania, wzajemnymi zależnościami między komponentami powstającego systemu informatycznego, wyborem platformy bazodanowej i zaplanowaniem innych elementów związanych wyłącznie z zagadnieniami technicznymi. Tymczasem w opisie architektury systemu nie wolno pomijać także innych kwestii: modelu licencjonowania, sposobu wdrażania i konserwacji systemu, a przede wszystkim jego użyteczności. Te pozornie niezwiązane z projektem elementy mogą mieć duży wpływ na powodzenie przedsięwzięcia, jakim jest stworzenie i sprzedaż oprogramowania. Odpowiednio przygotowany projekt systemu informatycznego powinien więc obejmować zarówno zagadnienia techniczne, jak i ekonomiczne.
Książka "Więcej niż architektura oprogramowania" to poradnik, dzięki któremu stworzenie odpowiedniej relacji między technologią a biznesem jest łatwiejsze, niż mogłoby się wydawać. Może się przydać zarówno menedżerowi, jak i programiście. Autor książki, doświadczony kierownik projektów i twórca oprogramowania, przedstawia związki między zagadnieniami technicznymi a innymi aspektami. Znajdziesz w niej opisy dobrych i skutecznych rozwiązań oraz zaczerpnięte z rynku przykłady planowania produkcji oprogramowania.
* Znaczenie architektury oprogramowania
* Zarządzanie oprogramowaniem jako produktem
* Modele licencjonowania
* Wykorzystywanie obcych technologii w projekcie
* Wdrażanie systemu
* Obsługa techniczna
* Dobór marki
* Funkcjonalność i łatwość obsługi
* Zabezpieczanie aplikacji
Sprawy z pozoru mało ważne często powodują największe problemy. Nie ignoruj ich. Pracuj nad projektem kompleksowo.
Similar to C++. Programowanie zorientowane obiektowo. Vademecum profesjonalisty (14)
Windows Movie Maker dołączany do systemu Windows XP to doskonałe narzędzie do domowego montażu cyfrowych filmów wideo. Jest prosty w obsłudze, posiada spore możliwości, a montaż filmów za jego pomocą jest przyjemną zabawą. Movie Maker pozwala na przeniesienie klipów z kamery cyfrowej, zaimportowanie materiałów z dysku, rozmieszczenie ujęć i połączenie ich przejściami, a także udźwiękowienie i dodanie efektów specjalnych. Gotowy film można wysłać pocztą elektroniczną, zapisać na dysku lub płycie CD albo opublikować w internecie.
Książka "Tworzenie filmów w Windows XP. Projekty" przedstawia proces tworzenia filmu wideo. Opisuje kolejne kroki prowadzące do zmontowania cyfrowego filmu wideo z przechwyconych ujęć i zaimportowanych materiałów. Nie znajdziesz w niej jednak długich opisów i dziesiątek parametrów. Każde zagadnienie jest przedstawione za pomocą zrzutów ekranu i krótkich instrukcji. Dzięki temu w ciągu kilku godzin zrealizujesz swój pierwszy projekt w Movie Makerze.
* Elementy interfejsu użytkownika
* Przechwytywanie klipów z kamery wideo
* Import materiałów źródłowych
* Tworzenie wstępnego montażu
* Dodawanie przejść i efektów specjalnych
* Nakładanie plansz tytułowych i napisów
* Udźwiękowienie filmu
* Korzystanie z funkcji Autofilm
* Eksport zmontowanego filmu
Przekonaj się, jak proste może być tworzenie własnych filmów wideo.
Przedstaw się światu!
* Jak zbudować elegancką stronę z blogiem?
* Jak tworzyć wyspecjalizowane przeglądarki bloga?
* Jak dodawać do własnego serwisu blogowego kanał RSS?
Prowadzenie bloga to nowy sposób na zwiększenie aktywności społecznej - szansa na zaistnienie w rzeczywistości wirtualnej, mająca swoje odbicie w tak zwanym „prawdziwym życiu”. Dlatego blogi piszą dziś niemal wszyscy: politycy, marketingowcy, celebryci, biznesmeni. Forma publicznie dostępnego pamiętnika pozwala na szeroką prezentację własnych poglądów, przekonań czy wartości. Z tego powodu blogi wykorzystywane są też jako wortale poświęcone określonej tematyce, promujące idee lub produkty. Ich użytkownicy stworzyli nawet własną społeczność, która 31 sierpnia obchodzi swoje święto - Dzień Bloga. Już dziś możesz do nich dołączyć!
„Blog, więcej niż internetowy pamiętnik” to książka, która pokaże Ci, jak założyć i prowadzić własny blog, a także aktywnie korzystać z innych blogów. Dowiesz się z niej, jak skorzystać z oprogramowania obsługującego serwisy blogowe, jak zintegrować języki PHP, HTML, CSS i SQL, aby stworzyć elegancką stronę prezentującą Twój blog. Nauczysz się budować własną bazę danych, przeznaczoną do przechowywania wpisów, a także zabezpieczać ją przed niepowołanymi modyfikacjami. I wreszcie poznasz sposób na dodanie do własnego serwisu kanału RSS, aby czytelnicy na bieżąco mogli obserwować pojawianie się nowych wpisów. Znajdziesz tu wszystko, czego potrzebujesz, aby zaprezentować światu swój blog!
* Obsługa okna tworzenia bloga
* Modyfikowanie wyglądu bloga
* Publikowanie w określonym terminie
* Rozbudowa bloga
* Instalacja czytnika RSS
* Subskrybowanie blogów za pomocą RSS
* Instalacja oprogramowania własnego serwera
* Baza danych i modyfikacja danych
* Projektowanie struktury bloga
* Zakładanie konta użytkownika
* Zakładanie bazy danych i tabeli danych
* Nadawanie uprawnień do korzystania z tabeli
* Przygotowanie szablonu i tworzenie strony www
* Automatyzowanie, blokowanie i trwałe usuwanie wpisu
* Tworzenie formularza wyszukiwania
* Tworzenie kanału RSS i wypełnianie go treścią
* Pobieranie programu Weber
Blog to prosty i fascynujący sposób, aby świat dowiedział się o Twoim istnieniu!
Pakiet biurowy MS Office jest jednym z podstawowych narzędzi wykorzystywanych we współczesnych firmach. Zawarty w nim system zarządzania bazami danych Access to wygodna w obsłudze aplikacja służąca do operowania na zbiorach danych. Dzięki prostocie obsługi, sporym możliwościom i wizualnym narzędziom stanowi doskonałe rozwiązanie dla przedsiębiorstw, w których duże znaczenie ma czas poświęcany na opanowanie nowych programów. Kreatory i rozbudowany system pomocy oferowane przez Accessa niezwykle upraszczają proces tworzenia bazy oraz aplikacji przeznaczonych do obsługi zgromadzonych w niej danych.
W książce "Access w biurze i nie tylko" znajdziesz omówienie podstawowych możliwości tego systemu. Nauczysz się tworzyć i otwierać istniejące bazy danych oraz tworzyć nowe. Dowiesz się, w jaki sposób projektować tabele i jak dobierać typy danych dla poszczególnych kolumn tabeli. Przeczytasz o relacjach, poznasz sposoby wybierania i wstawiania danych, a także manipulowania nimi za pomocą kwerend. W kolejnych rozdziałach znajdziesz informacje o tworzeniu formularzy i raportów oraz wyświetlaniu wykresów na podstawie danych zgromadzonych w bazie. Nauczysz się także pisać własne makra i poznasz podstawy języka Visual Basic for Applications.
* Otwieranie istniejących baz danych
* Tworzenie tabel
* Typy danych
* Tworzenie i modyfikowanie relacji
* Manipulowanie danymi za pomocą kwerend
* Konstruowanie formularzy
* Budowanie raportów
* Automatyzacja pracy za pomocą makropoleceń
* Tworzenie i wyświetlanie wykresów
Dane to dziś najcenniejszy towar. Naucz się nim zarządzać.
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczneWydawnictwo Helion
Zapewnij swojej witrynie miejsce w pierwszej dziesiątce!
* Jak działają wyszukiwarki?
* Jaki wpływ na pozycję serwisu mają linki przychodzące i wychodzące?
* Czy istnieją zagrożenia związane z niewłaściwym pozycjonowaniem?
Stworzenie serwisu WWW to dopiero połowa sukcesu w Internecie. Druga połowa to zapewnienie witrynie odpowiedniej popularności. A tę popularność może zagwarantować przede wszystkim wysokie miejsce w wynikach wyszukiwarek. Jak to osiągnąć? Od czego zacząć i jak monitorować skuteczność prowadzonych działań? Wszystkie odpowiedzi znajdziesz właśnie w tej książce!
Poprzez liczne przykłady i ćwiczenia autorzy zapoznają Cię ze sposobem działania wyszukiwarki Google i zasadami doboru właściwych słów kluczowych. Pokażą, jak najlepiej rozmieścić je na stronie. Ponadto dowiesz się, jaki wpływ na pozycję strony mają linki wychodzące oraz przychodzące, jak przebiega proces indeksowania strony, jak działają systemy wymiany linków oraz jak wykorzystać statystyki do obserwacji ruchu na stronie. Przeczytasz także o tym, jakie zagrożenia niesie ze sobą niewłaściwa procedura pozycjonowania.
* Sposób działania Google oraz innych wyszukiwarek
* Definiowanie fraz i słów kluczowych
* Wpływ linków przychodzących i wychodzących na pozycję strony
* Korzystanie z systemów wymiany linków
* Proces indeksacji witryny
* Zagrożenia związane z niewłaściwym pozycjonowaniem
* Wykorzystanie statystyk do śledzenia ruchu na stronie
* Sposoby reklamowania serwisu
Zwiększ oglądalność swojej witryny WWW!
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesieWydawnictwo Helion
Lustereczko, powiedz przecie,
kto jest najwspanialszy w necie?
* Tworzenie i wykorzystywanie odpowiedniego wizerunku oraz zarabianie na nim
* Budowanie pożądanych marek bez wielkich nakładów finansowych
* Interaktywne relacje z klientami
* Wykorzystanie Internetu do rozwoju biznesu
* Narzędzia kreowania wizerunku w sieci
Jak Cię widzą (w sieci), tak Cię piszą
Internet jest nie tylko rewolucyjnym medium, pierwszym o naprawdę masowym zasięgu działania. Stanowi on przede wszystkim fascynujący alternatywny świat. Działa jak magnes, co roku przyciągając nowych użytkowników. Niczym używka, wciąż odnotowuje wydłużenie czasu kontaktu z odbiorcą. I last but not least — Internet to niekończący się pasaż handlowy, wymarzone miejsce spotkań podaży i popytu.
Poznaj specyfikę światowej sieci WWW i znajdź w niej właściwe miejsce dla Twojej marki. E-marketing rządzi się własnymi prawami — z jednej strony bezustannie stawia firmy przed nowymi wyzwaniami, z drugiej zaś stale kreuje nowe narzędzia dotarcia do klienta. A są one naprawdę fascynujące: możliwość dowolnej personalizacji przekazu, olbrzymia ilość kanałów, a przede wszystkim atrakcyjne społeczności — ludzie młodzi, aktywni, hobbyści, biznesmeni oraz entuzjaści nowinek. Mogą oni zostać ambasadorami Twojej marki, ale mogą też ją zniszczyć. Dlatego musisz poznać zasady rządzące Internetem i jego społecznościami, a następnie zacząć budować instrumenty wywierania wpływu i wykorzystać je dla dobra Twojego produktu.
Internet ma przyszłość!
* Czym jest e-wizerunek i jak wpływa na sukces firm, produktów i ludzi?
* Narzędzia budowania image’u — strona WWW, fora internetowe, newslettery i inne.
* Sześć zasad skutecznego kreowania e-wizerunku.
* Grzechy główne działań internetowych.
* Marka jako efekt przemyślanej strategii wizerunkowej.
* Case studies
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsWydawnictwo Helion
Rozpocznij przygodę z Visual C++!
* Jakie prawa rządzą programowaniem obiektowym?
* Jak tworzyć usługi systemowe?
* Jak dokumentować tworzony kod?
Microsoft Visual C++ jest zintegrowanym środowiskiem, pozwalającym na tworzenie aplikacji przy użyciu języków C, C++ lub C++/CLI. Zawiera ono wyspecjalizowane narzędzia, pomagające w wydajnym tworzeniu rozwiązań opartych o te języki. Pierwsza wersja Visual C++ została wydana w 1992 roku, a środowisko to jest bezustannie ulepszane. Najnowsze wydanie, z datą 2008, zostało opublikowane w listopadzie 2007 roku i wprowadziło wiele nowości — jak chociażby wsparcie dla technologii .NET 3.5. Niewątpliwie narzędzie firmowane przez giganta z Redmond jest jednym z najpopularniejszych, a używają go programiści z całego świata.
Dzięki tej książce również Ty możesz dołączyć do tego wybitnego grona. Po jej przeczytaniu będziesz miał wiedzę na temat środowiska programistycznego i platformy .NET. Poznasz podstawy programowania obiektowego, nauczysz się uzyskiwać dostęp do informacji zgromadzonych w bazach danych oraz korzystać z możliwości Internetu bezpośrednio w Twoich programach. Kolejne rozdziały przedstawiają interesujące tematy dotyczące obsługi wyjątków, programów wielowątkowych oraz sposobów tworzenia usług systemowych. Ostatni rozdział poświęcony został tak istotnej kwestii, jak dokumentowanie kodu — to czynność, o której wielu programistów zapomina. Jeżeli chcesz rozpocząć przygodę z Microsoft Visual C++, ta książka jest idealną lekturą dla Ciebie!
* Praca w zintegrowanym środowisku programistycznym
* Pojęcia związane z programowaniem obiektowym
* Uzyskiwanie dostępu do informacji zgromadzonych w bazach danych
* Wykorzystanie transakcji w pracy z danymi
* Sposoby integracji z siecią Internet
* Obsługa wyjątków
* Programowanie wielowątkowe
* Tworzenie grafiki oraz wykorzystanie multimediów
* Drukowanie w systemie Windows
* Tworzenie usług systemowych
* Dokumentowanie kodu programu
Wykorzystaj możliwości Microsoft Visual C++ 2008!
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IIWydawnictwo Helion
Poznaj możliwości iPhone’a!
* Jak rozpocząć pracę z iPhone’em?
* Jak wykorzystać możliwości przeglądarki Safari?
* Jak używać map?
Pojawienie się iPhone’a firmy Apple można bez wahania nazwać Rewolucją! Rewolucją przez duże "R". Nigdy wcześniej żaden nowy telefon nie wzbudził takich emocji. Nigdy wcześniej nie ustawiały się na wiele dni przed premierą kolejki pod salonami. Co sprawia, że ludzie szaleją za tym małym cudem techniki? Wielodotykowy (ang. multitouch) ekran, dostęp do tysięcy aplikacji, stabilny system operacyjny oraz elegancki, przykuwający uwagę wygląd to tylko niektóre z jego zalet.
Właśnie dzięki tej książce dowiesz się, co tak naprawdę potrafi Twój iPhone. Autor — niezawodny Scott Kelby — bez zbędnego zagłębiania się w szczegóły techniczne opowie Ci o możliwościach tego rewolucyjnego urządzenia. Zaprezentuje Ci m.in. sposoby wykonywania różnych operacji przy użyciu tego telefonu. Poznasz tajniki jego konfiguracji i synchronizacji z komputerem oraz metodę sprawdzania poziomu naładowania baterii. Nauczysz się wykorzystywać wszystkie możliwości przeglądarki Safari, czytnika poczty oraz terminarza. Dowiesz się również, jak odtwarzać klipy z YouTube, słuchać muzyki czy oglądać filmy. Książka ta jest zatem świetną pozycją zarówno dla początkującego użytkownika telefonu iPhone, jak również dla zaawansowanego — ten ostatni znajdzie tu informacje, które go zaskoczą i zachwycą! W końcu iPhone to zdolna i piękna bestia…
* Włączanie, usypianie, wyłączanie iPhone’a
* Wykorzystanie wbudowanego głośnika
* Obsługa ekranu
* Importowanie kontaktów
* Dodawanie numerów
* Połączenia konferencyjne
* Wyciszanie dzwonka
* Odbieranie i wysyłanie wiadomości e-mail
* Obsługa przeglądarki Safari
* Wykorzystanie kalendarza
* Odtwarzanie klipów z YouTube
* Używanie mapy
* Sprawdzanie prognozy pogody
* Importowanie i odtwarzanie muzyki
* Wykonywanie zdjęć
* Rozwiązywanie typowych problemów
Sprawdź, co potrafi Twój iPhone!
Uwiecznij świat, jakiego nie znałeś!
* Jaki sprzęt jest potrzebny do makrofotografii?
* Jak uzyskać duże powiększenia?
* Jak komponować efektowne zdjęcia?
Wiele osób nie zwraca uwagi na niepozorne, małe elementy otaczającego nas świata. Czyż nie warto pokazać im, co tracą? Wykonanie dobrego zdjęcia w skali makro to wyzwanie, ale zachwyt na twarzach oglądających jest wart wszelkich poświęceń. Właśnie dzięki makrofotografii można ujrzeć cudowny świat, niezauważalny na co dzień. Magiczny świat szczegółów!
Autor książki "Makrofotografia. Magia szczegółu " przedstawia ten temat w sposób przejrzysty i systematyczny. Dzięki tej publikacji zdobędziesz informacje dotyczące sprzętu potrzebnego do wykonania makrofotografii oraz sposobu kompozycji zdjęcia. Poznasz zagadnienia związane z właściwym doborem ostrości, a także takie pojęcia, jak głębia ostrości, długość ogniskowej, jasność obiektywu i wiele innych. Pozwolą Ci one na swobodne poruszanie się po świecie makrofotografii. Ponadto poszerzysz swoją wiedzę odnośnie doboru właściwego oświetlenia oraz programów odpowiednich do obróbki wykonanych zdjęć. Niewątpliwym atutem tej książki są pytania i zadania kontrolne, które pozwolą Ci zweryfikować zdobyte umiejętności. Jeżeli chcesz uwiecznić otoczenie w makrofotografii, ta pozycja będzie dla Ciebie nieocenionym źródłem informacji, a może nawet twórczej inspiracji!
* Sprzęt konieczny do wykonania makrofotografii
* Sposoby na uzyskanie dużych powiększeń
* Komponowanie zdjęć
* Zasady doboru kadru
* Uzyskiwanie właściwej ostrości
* Ograniczenia ostrości
* Dobór właściwego oświetlenia
* Metody pomiaru światła
* Doświetlanie zdjęć
* Narzędzia do edycji zdjęć
Odsłoń na fotografiach całe piękno szczegółu!
Naucz się korzystać z nowoczesnych narzędzi PowerShella
i usprawniaj żmudne zadania administracyjne!
* Jak skonfigurować środowisko PowerShella?
* Jak tworzyć aplety poleceń i jak ich używać?
* Jak korzystać z potoku danych?
Windows PowerShell to innowacyjne narzędzie do zarządzania systemem i przetwarzania skryptów dla serwerów oraz klientów pod kontrolą Windows. Charakterystyczną cechą tego interpretera poleceń jest obiektowa logika, która sprawia, że wynikiem każdego polecenia jest obiekt określonego typu. Dodatkowo wszystkie funkcje dostępne przez API systemu są możliwe do wywołania z poziomu PowerShella. Dzięki swojej uniwersalności oraz nowoczesnym narzędziom interpreter ten zapewnia spójny oraz jasny mechanizm zarządzania, oparty na wierszu poleceń i niewymagający od użytkownika dużej wiedzy programistycznej.
Książka "Windows PowerShell. Podstawy" zawiera dokładny opis innowacyjnej architektury PowerShella, zasad pisania skryptów oraz możliwości korzystania z podstawowych interfejsów systemowych: COM, WMI, ADSI i ADO.NET, a także obszerny zbiór opisów rozwiązań konkretnych zadań administracyjnych. Korzystając z tego przewodnika, poznasz funkcje i narzędzia PowerShella. Nauczysz się również korzystać z obiektowego potoku danych i zarządzać procesami, dziennikami zdarzeń oraz wpisami rejestru. Dzięki zawartej tu wiedzy z pewnością usprawnisz i zautomatyzujesz wszelkie czasochłonne zadania administracyjne, by móc swobodnie stosować PowerShell jako podstawową konsolę do codziennej pracy.
* Aplety poleceń
* Przetwarzanie potokowe
* Potoki danych
* Uniwersalny model nawigacji
* Definiowanie dysków
* Język skryptów PowerShella
* Tablice asocjacyjne
* Praca ze skryptami
* Różnicowanie reakcji na błędy
* Biblioteki klas
* Narzędzia PowerShella
* Zarządzanie użytkownikami i grupami w Active Directory
* Bazy danych
* Zaawansowane operacje dostępu do danych
PowerShell skróci czas Twojej pracy!
Poznaj specyfikę języka Java i zostań mistrzem programowania
* Jak korzystać z bibliotek języka Java?
* Jak pisać funkcjonalny i klarowny kod?
* Jak stworzyć profesjonalny i efektowny program?
Język Java jest językiem obiektowym z dziedziczeniem jednobazowym. Wewnątrz każdej metody korzysta on ze zorientowanego na instrukcje stylu kodowania. Aby dobrze poznać jakikolwiek język, należy nauczyć się posługiwać jego regułami, zasadami i składnią — podobnie jest z językiem programowania. Jeśli chcesz zyskać możliwość efektywnego programowania w języku Java, powinieneś poznać struktury danych, operacje i udogodnienia, oferowane przez biblioteki standardowe, a także często stosowane i efektywne sposoby tworzenia kodu. Całą potrzebną Ci wiedzę znajdziesz właśnie w tym podręczniku.
W książce „Java. Efektywne programowanie” w sposób zrozumiały i klarowny przedstawiono zasady opisujące mechanizmy używane w najlepszych technikach programowania. Ten podręcznik podpowie Ci, jak najbardziej racjonalnie korzystać z języka Java oraz jego podstawowych bibliotek. Dowiesz się, jak stosować wyjątki przechwytywalne i wyjątki czasu wykonania, poznasz także zalety stosowania statycznych klas składowych. Opanujesz metody sprawdzania poprawności parametrów i projektowania sygnatur oraz wszelkie instrukcje, które pozwolą Ci na wydajne i profesjonalne programowanie.
* Tworzenie i usuwanie obiektów
* Klasy i interfejsy
* Zapewnianie niezmienności obiektu
* Projektowanie i dokumentowanie klas przeznaczonych do dziedziczenia
* Zalety stosowania statycznych klas składowych
* Typy ogólne
* Typy wyliczeniowe i adnotacje
* Metody
* Programowanie
* Wykorzystanie ogólnie przyjętych konwencji nazewnictwa
* Wyjątki
* Współbieżność i serializacja
* Dokumentowanie bezpieczeństwa dla wątków
Nie wystarczy samo poznanie języka Java. Trzeba wiedzieć, jak z niego efektywnie korzystać!
Rozpocznij swoją przygodę z JavaScript!
* Jak rozpocząć przygodę z JavaScript?
* Jakie obiekty dostarcza JavaScript?
* Jak reagować na błędy?
Język JavaScript, choć ma już blisko dwanaście lat, swoimi możliwościami wciąż potrafi zafascynować niejednego projektanta stron internetowych. Ma już za sobą gorsze dni, jednak aktualnie dzięki technologii AJAX znów jest na topie. Wykorzystując go w odpowiedni sposób, sprawisz, że twój serwis WWW stanie się bardziej interaktywny i dynamiczny.
Ta książka pozwoli Ci wyjść zwycięsko z pierwszego starcia z tym językiem! Dowiesz się z niej, jak używać zmiennych, operatorów oraz funkcji. Nauczysz się reagować na zdarzenia oraz wykorzystywać okna dialogowe. Ponadto zdobędziesz wiedzę na temat pracy z obiektami DOM HTML oraz na temat sposobów reagowania na błędy w skryptach. Autor przedstawia tu także dostępne obiekty JavaScript oraz pokazuje, jak wykonywać operacje związane z czasem. Ogromnym atutem tej książki jest przejrzystość i usystematyzowany sposób prezentowania informacji. Dzięki temu również Ty szybko i bezboleśnie poznasz JavaScript!
* Typowe konstrukcje języka JavaScript
* Wykorzystanie zmiennych
* Zastosowanie funkcji
* Reagowanie na zdarzenia
* Sposoby użycia okien dialogowych
* Wykonywanie operacji związanych z czasem
* Dostępne obiekty JavaScript
* Obiekty DOM HTML
* Przygotowanie własnych obiektów
* Dziedziczenie w JavaScript
* Obsługa błędów
Przejdź bezboleśnie pierwsze starcie z JavaScript!
Naucz się łączyć największe zalety języków oraz technik programowania
i twórz interaktywne strony internetowe
* Jak unikać typowych błędów i sprawnie rozwiązywać problemy programistyczne?
* Jak połączyć zalety HTML, XML i PHP dla uzyskania pożądanych efektów?
* Jak tworzyć aplikacje wyposażone w aktywny interfejs użytkownika?
Statyczne strony WWW to dziś już przeszłość. Powszechnie dostępne narzędzia dają programistom prawie nieograniczone możliwości w zakresie tworzenia interaktywnych witryn internetowych, wzbogaconych o najróżniejsze efekty wizualne, animacje oraz wbudowane narzędzia pomocnicze. Największą popularność zdobyły sobie narzędzia z kategorii open source — z powodu ich minimalnego kosztu oraz niezwykle dużych zasobów, dostępnych za pośrednictwem Internetu. Z tej książki dowiesz się, jak tworzyć bogate i interaktywne strony WWW, łącząc rozmaite techniki i korzystając z różnych języków.
Książka "Ajax, JavaScript i PHP. Intensywny trening" poprowadzi Cię krok po kroku po podstawowych zasadach programowania w językach JavaScript, PHP i HTML oraz technologiach programowania. Dzięki temu podręcznikowi dowiesz się m.in., jak wykorzystywać dostępne biblioteki ajaksowe do implementowania i ulepszania podstawowych mechanizmów aplikacji. Szybko nauczysz się tworzyć interaktywne strony WWW, zarówno za pomocą technologii serwerowych, jak i technik oraz narzędzi umiejscowionych po stronie klienckiej, a także ich kombinacji.
* Tworzenie stron WWW w języku HTML
* Stylizacja stron za pomocą arkuszy CSS
* Tworzenie skryptów w języku JavaScript
* Wbudowanie skryptu w stronę WWW
* Obiektowy model dokumentu (DOM)
* Obiekty String
* Instrukcje warunkowe i pętle
* Funkcje wbudowane i biblioteki
* Konstruowanie aplikacji ajaksowych
* Zmienne w języku PHP
* Funkcje liczbowe, łańcuchy i tabele
* Kontrola przepływu sterowania
* Usługi webowe oraz protokoły REST i SOAP
Łącz, kompiluj, dobieraj — niech Twoje strony WWW zrobią wrażenie!
Poznaj narzędzia programu PowerPoint i twórz wyjątkowe prezentacje!
* Jak stworzyć profesjonalną prezentację na każdą okazję?
* Jak modyfikować grafikę SmartArt?
* Jak korzystać z programu Clip Organizer i biblioteki slajdów?
Z pewnością wiesz, do czego służy program PowerPoint, lecz jeśli jeszcze nie potrafisz z niego korzystać, a musisz szybko przygotować profesjonalną prezentację, ta książka jest właśnie dla Ciebie! Znajdziesz tu opis ostatniej wersji programu — PowerPoint 2007. Umożliwia ona stworzenie zaawansowanej i bogatej prezentacji, wyposażonej w dźwięk, fotografie i animacje filmowe. Nowy PowerPoint pozwala także na bezpieczne udostępnianie Twojej prezentacji wszystkim zainteresowanym.
Książka "PowerPoint 2007 PL. Seria praktyk" to bogato ilustrowany, a przy tym prawdziwie intuicyjny podręcznik, dzięki któremu każdy nauczy się sprawnie korzystać z tej aplikacji. Kolor i zrzuty ekranowe ilustrujące kolejne informacje, jak również klarowne i zrozumiałe instrukcje sprawiają, że nauka staje się niezwykle prosta. Dzięki tej książce poznasz wszystkie niezbędne narzędzia PowerPointa i ciekawe funkcje tego programu. Dowiesz się, jak zastosować w swojej prezentacji grafiki SmartArt oraz zaawansowane układy slajdów, a także w jaki sposób korzystać z galerii stylów czy biblioteki slajdów.
* Tworzenie prezentacji
* Praca z tekstem
* Grafika i linie
* Konwersja na grafikę SmartArt
* Tabele i wykresy
* Używanie Excela 2007 — kopiowanie i wstawianie tabel
* Wzbogacanie prezentacji — animacje
* Multimedia
* Dodawanie filmów i dźwięku
* Tworzenie albumów
* Pokaz slajdów
* Nagrywanie narracji
* Udostępnianie prezentacji
* Bezpieczeństwo
PowerPoint jest dla każdego!
Poznaj narzędzia oraz funkcje Excela i z łatwością wykorzystuj tę wiedzę w pracy
* Jak tworzyć skoroszyty i wykresy?
* Jak zarządzać danymi w arkuszach?
* Jak szacować formuły?
Na samo brzmienie słowa "Excel" reagujesz paniką? Uważasz, że to bardzo skomplikowany i trudny w obsłudze program? Świetnie! Ta książka została napisana właśnie z myślą o Tobie! Podręcznik, który trzymasz w rękach, stanowi namacalny dowód na to, że Excel 2007 może być prosty, a nauka jego obsługi bardzo przyjemna! Choć trudno Ci w tej chwili w to uwierzyć, aplikacja ta oferuje cale spektrum nowoczesnych, a przy tym przyjaznych i intuicyjnych narzędzi oraz funkcji, dzięki którym znacznie usprawnisz i przyspieszysz swoją pracę. Naprawdę warto je poznać!
Książkę "Excel 2007 PL. Seria praktyk" przygotowano w taki sposób, aby każdy mógł nauczyć się korzystać z narzędzi Excela, tworzyć odpowiednie arkusze oraz wykonywać na nich praktyczne operacje. Wszystkie porady i instrukcje napisane zostały prostym, zrozumiałym językiem. Dzięki temu szybko opanujesz sposoby zarządzania danymi czy szacowania formuł w tym programie. Wszystkie omawiane zagadnienia zilustrowane są ułatwiającymi zrozumienie zrzutami ekranowymi, a kolorowy druk znacznie uprzyjemni Ci korzystanie z książki. Wystarczy ją przeczytać, a poznasz Excela w stopniu pozwalającym Ci na swobodną pracę w tym programie. Na co zatem czekasz? Przed Tobą nauka takich zagadnień, jak:
* Tworzenie skoroszytu
* Wprowadzanie danych do arkusza i zarządzanie nimi
* Formuły i funkcje
* Tabele i wykresy
* Konwersja tabeli do postaci zakresu
* Zaawansowane funkcje
* Szacowanie formuł
* Zarządzanie Excelem
* Makra
* Szablony i scenariusze
* Łącza i odwołania
* Stosowanie aktualizacji
Najprostszy i najprzyjemniejszy sposób na poznanie Excela!
Poznaj praktyczne możliwości programu Access 2007!
* Jak właściwie zaprojektować bazę danych?
* Jak korzystać z szablonów?
* Jak tworzyć tabele i definiować relacje między nimi?
Wbrew pozorom nie trzeba być specjalistą, żeby korzystać z Accessa! Jest to program wyjątkowo przyjazny dla użytkownika, umożliwiający tworzenie baz danych i zarządzanie nimi bez potrzeby dogłębnego poznawania języka SQL oraz skomplikowanych środowisk serwerowych. Aplikacja pozwala na zapisywanie danych z wykorzystaniem formularzy, kierowanie zapytań do bazy, a także dzielenie danych ze współpracownikami za pośrednictwem sieci komputerowej.
Książka "Access 2007 PL. Seria praktyk" zawiera zwięzły i czytelny opis wszystkich najważniejszych funkcji tego programu, a także konkretne przykłady i jasne instrukcje zastosowania narzędzi Accessa. Kolorowe strony pozwalają na szybkie odnalezienie interesujących Cię zagadnień. Dzięki temu podręcznikowi poznasz podstawowe zasady tworzenia dobrego projektu bazy danych oraz jej zaawansowane możliwości. Nauczysz się tworzyć tabele, formularze i raporty, a także korzystać z kluczy podstawowych i obcych. Bez problemu zbudujesz taką bazę danych, która pozwoli Ci sprawnie zarządzać informacjami.
* Personalizacja Accessa 2007
* Projektowanie baz danych
* Relacyjne bazy danych
* Klucze podstawowe i obce
* Tworzenie tabel
* Korzystanie z typów danych
* Definiowanie relacji
* Kwerendy
* Korzystanie z SQL
* Tworzenie i dostrajanie formularzy
* Tworzenie raportów
* Współdzielenie Accessa
Naucz się korzystać z Accessa — zachwycą Cię jego możliwości!
Odkryj bogactwo funkcji Worda!
Jak poprawnie formatować i uatrakcyjniać dokumenty?
Chcesz zacząć sprawnie tworzyć w programie Word dokumenty o profesjonalnym wyglądzie? A może tak dobrze go już znasz, że wątpisz, by skrywał przed Tobą jeszcze jakiekolwiek tajemnice? Tak czy inaczej warto opanować wszystkie potężne możliwości najpopularniejszego edytora tekstów, różne sposoby pracy z nim i metody tworzenia dokumentów tekstowych. Uzbrojony w taką wiedzę, z pewnością będziesz pracował szybciej i sprawniej.
Książka "Word 2007 PL. Seria praktyk" jest graficznym przewodnikiem po najnowszej wersji Worda i zawiera dokładny opis jego funkcji podstawowych oraz zaawansowanych — począwszy od tworzenia i formatowania tekstów, a na złożonych makrach skończywszy. Wszystko to przedstawione zostało za pomocą przejrzystych, kolorowych i szczegółowych instrukcji oraz praktycznych przykładów. Dzięki temu podręcznikowi poznasz całe spektrum narzędzi Worda i udoskonalisz swoją pracę z tym programem.
* Narzędzia główne
* Formatowanie tekstu
* Szybkie style
* Praca z dokumentem
* Drukowanie i publikowanie
* Konwersja do formatu PDF
* Biblioteka ClipArt i SmartArt
* Hiperłącza i zakładki
* Równania
* Zaawansowane funkcje — podpis cyfrowy
* Makra
Opanuj wszystkie narzędzia Worda i ciesz się swobodą tworzenia dokumentów!
Serwisy społecznościowe. Budowa, administracja i moderacjaWydawnictwo Helion
Dołącz do kreatorów nowych trendów! Stwórz własny serwis społecznościowy!
* Pierwsze kroki w roli twórcy serwisu — rodzaje stron, prawo i reklama
* Skrypty, instalacja i administracja — PHPizabi, Elgg, Dolphin, Joomla!
* ABC moderatora i użytkownika — regulamin, trolle, zakres ingerencji
Serwisy społecznościowe są bodaj najszybciej rozwijającą się dziś częścią internetu. Nie sposób przecenić ich roli społecznej i opiniotwórczej. Liczba użytkowników i ich poczucie wspólnoty decydują o sile i prężności tych serwisów. W każdej chwili możesz przyłączyć się do któregoś z nich. Jednak znacznie więcej radości sprawiłoby Ci na pewno prowadzenie własnego serwisu, wokół którego skupiałaby się cała społeczność osób o zainteresowaniach podobnych do Twoich.
W książce "Serwisy społecznościowe. Budowa, administracja i moderacja" znajdziesz wszelkie informacje dotyczące tworzenia i obsługi serwisu społecznościowego. Opisano w niej początki tego zjawiska społecznego, podstawy jego działania, rozmaite odmiany serwisów, wszelkie kwestie prawne i techniczne. Niezależnie od tego, czy szukasz inspiracji odnośnie treści umieszczanych w serwisie, czy chciałbyś dowiedzieć się, jak rozwiązać konkretne problemy z konfiguracją, rejestracją, wyborem mechanizmu działania czy wyglądu Twojego serwisu, autorzy służą Ci rzetelną wiedzą, wskazówkami i podpowiedziami. Oprócz tego wprowadzą Cię w kwestie związane z bezpieczeństwem w sieci, rolą moderatora i rozwiązywaniem problemów z użytkownikami.
* Społeczności internetowe
* Serwisy społecznościowe (historia, rodzaje, reklama)
* Regulacje prawne
* Wybór domeny i hostingu
* Niezbędne narzędzia (klient FTP, edytory CSS i tekstowe)
* Serwis społecznościowy a forum dyskusyjne
* Bezpieczeństwo serwisu
* Skrypty (PHPizabi, Elgg, Dolphin, Joomla!, BuddyPress, Joovili, SocialEngine i wiele innych)
* Online-Community-Building
* Skrypty do budowy serwisu wideo (ClipBucket Lite, Clipshare, ClipHouse i wiele innych)
* Rola moderatora
* Social shopping
Sprawdź, jak wiele satysfakcji daje własny serwis społecznościowy!
AutoCAD to program do komputerowego wspomagania projektowania, który od lat wyznacza standardy na rynku takich aplikacji. Z jego możliwości korzystają projektanci różnych branż, a ogromna liczba bibliotek, modułów i nakładek sprawia, że realizacja nawet najbardziej złożonych projektów przebiega szybko i sprawnie. Każda kolejna wersja AutoCAD-a jest bardziej rozbudowana. W wersji 2008 autorzy aplikacji zadbali o optymalizację znanych już użytkownikom narzędzi i zwiększenie produktywności pracy. Zmodernizowany interfejs użytkownika oraz nowe możliwości docenią nie tylko profesjonaliści, ale również ci, którzy stawiają pierwsze kroki w świecie komputerowego wspomagania projektowania.
Książka "AutoCAD 2008 i 2008 PL" to wyczerpujące omówienie najnowszej edycji tej aplikacji. Każdy użytkownik AutoCAD-a, niezależnie od stopnia zaawansowania, znajdzie w niej interesujące informacje. Czytając tę książkę, nauczysz się tworzyć i modyfikować rysunki, wymiarować je, korzystać z warstw, bloków i stylów oraz drukować projekty. Poznasz zasady modelowania bryłowego, tworzenia szablonów oraz rysowania w trybie aksonometrycznym. Każde z narzędzi dostępnych w aplikacji jest dokładnie omówione, a ilustrowane przykłady ułatwiają poznanie ich w praktyce.
* Interfejs użytkownika, menu i paski narzędzi
* Praca z dokumentami
* Układy współrzędnych
* Tworzenie podstawowych obiektów i definiowanie ich właściwości
* Napisy i tabelki
* Rysowanie precyzyjne
* Rysunek aksonometryczny
* Kreskowanie
* Naprawianie uszkodzonych rysunków
* Techniki wymiarowania, modyfikowanie wymiarów i style wymiarowe
* Modelowanie 3D i bryły ACIS
Poznaj najnowszą wersję narzędzia, które zrewolucjonizowało pracę projektantów na całym świecie.
Zobacz, jakie to proste — naucz się tworzyć bazy danych!
* Jak tworzyć formularze i raporty?
* Jak modyfikować strukturę tabel?
* Jak stosować mechanizmy wymiany danych?
Współczesny świat wymusza na przedsiębiorstwach gromadzenie oraz przetwarzanie ogromnej ilości informacji. To sprawia, że muszą one dysponować wydajnymi i sprawnymi bazami danych. Aby zbudować taki system zarządzania danymi, niezbędne są odpowiednie narzędzia — jednym z nich jest program MS Access. Ta aplikacja przede wszystkim pozwala na łatwą kontrolę poprawności tworzonych projektów oraz zapewnia integrację narzędzi służących do tworzenia struktury relacyjnej. Dba także o zgodność tych narzędzi ze standardem języka zapytań SQL, wykorzystywanym do tworzenia i modyfikowania baz danych oraz operowania na zgromadzonych w nich informacjach.
Książka „Bazy danych. Pierwsze starcie” stanowi doskonałe wprowadzenie w tematykę tworzenia baz danych. Zawiera wszystkie potrzebne informacje, podane w prosty i przejrzysty sposób. Ten podręcznik przyda się zarówno studentom kierunków informatycznych, jak i wszystkim tym, którzy chcą zdobyć wiedzę o nowoczesnych metodach budowania takich baz. Stąd dowiesz się m.in., jak wykorzystywać język zapytań SQL, w jaki sposób tworzyć tabele, formularze i raporty oraz stosować mechanizmy wymiany danych, a także na czym polega filtrowanie i sortowanie w zapytaniach. Zdobędziesz wiedzę i umiejętności wystarczające do samodzielnego zbudowania wydajnej bazy danych i sprawnego nią zarządzania.
* Projektowanie bazy danych — narzędzia wizualne
* Tworzenie formularzy i raportów
* Strukturalny język zapytań SQL w wersji MS JetSQL
* Składnia podstawowa
* Unia — koniunkcja zbiorów
* Grupowanie i funkcje agregujące
* Zastosowanie języka SQL z poziomu formularzy
* Mechanizmy wymiany danych
* Obiekty: DAO, RDO, ADO
* Zastosowanie mechanizmów wymiany danych przy tworzeniu aplikacji
Stwórz własną, niezawodną bazę danych!
Wkrocz w świat projektowania 3D
* Jak definiować parametry projektu?
* W jaki sposób korzystać z narzędzi projektowych?
* Jak generować dokumentację techniczną?
Inventor, opracowany i sprzedawany przez firmę Autodesk, to program typu CAD, pozwalający na zamodelowanie projektowanego urządzenia lub elementu w postaci bryły trójwymiarowej. W oparciu o tak zamodelowaną bryłę Inventor umożliwia wygenerowanie pełnej dokumentacji projektowej — rysunków wykonawczych i złożeniowych, wykazu części i innych. Aplikacja pozwala także na przeprowadzenie symulacji i analizy działania projektowanego urządzenia.
"Inventor. Pierwsze kroki " to podręcznik dla wszystkich osób, które chcą poznać możliwości tej aplikacji i wykorzystać je w swojej pracy. Książka opisuje proces instalacji i konfiguracji programu oraz definiowania parametrów projektu. Pokazuje także kolejne kroki jego realizacji. Przeczytasz w niej o tworzeniu szkiców, definiowaniu wiązań, generowaniu modeli bryłowych i tworzeniu zespołów. Dowiesz się także, w jaki sposób wygenerować dokumentację techniczną w oparciu o gotowy model oraz jak zaprezentować elementy projektu w postaci animacji trójwymiarowej.
* Instalacja Inventora
* Konfiguracja interfejsu użytkownika
* Praca z oknami dialogowymi
* Tworzenie szkiców i wiązań
* Edycja obiektów graficznych
* Tworzenie brył trójwymiarowych
* Łączenie elementów w zespoły
* Tworzenie dokumentacji technicznej
* Prezentacja zespołów
Zrealizuj swoje wizje za pomocą Inventora!
1. IDZ DO
PRZYK£ADOWY ROZDZIA£
SPIS TRE CI C++. Projektowanie
zorientowane obiektowo.
KATALOG KSI¥¯EK Vademecum profesjonalisty
KATALOG ONLINE Autor: Nicolai M. Josuttis
T³umaczenie: Jaromir Senczyk
ZAMÓW DRUKOWANY KATALOG ISBN: 83-7361-195-9
Tytu³ orygina³u: Object-Oriented Programming in C++
Format: B5, stron: 560
TWÓJ KOSZYK
DODAJ DO KOSZYKA C++ jest obecnie wiod¹cym jêzykiem programowania obiektowego. Jego podstawowymi
zaletami w stosunku do innych jêzyków obiektowych jest wysoka efektywno æ
i uniwersalno æ. Stosowany jest do tworzenia komercyjnego oprogramowania oraz
CENNIK I INFORMACJE efektywnych rozwi¹zañ z³o¿onych problemów.
Ksi¹¿ka krok po kroku omawia wszystkie w³a ciwo ci jêzyka i wyja nia sposoby ich
ZAMÓW INFORMACJE praktycznego u¿ycia. Przedstawione przyk³ady programów nie s¹ zbyt skomplikowane,
O NOWO CIACH by nie odrywaæ Twojej uwagi od omawianych zagadnieñ, ale nie s¹ te¿ sztucznie
uproszczone. Kluczowym za³o¿eniem jêzyka C++ jest programowanie z wykorzystaniem
ZAMÓW CENNIK szablonów, które umo¿liwiaj¹ tworzenie rozwi¹zañ o wysokim poziomie ogólno ci —
na przyk³ad implementacjê polimorfizmu. Nicolai Josuttis omawia mo¿liwo æ ³¹czenia
szablonów z programowaniem obiektowym, która decyduje o potê¿nych mo¿liwo ciach
CZYTELNIA jêzyka C++ jako narzêdzia tworzenia wydajnych programów. W tym zakresie ksi¹¿ka
wykracza daleko poza podstawy.
FRAGMENTY KSI¥¯EK ONLINE • Wprowadzenie do C++ i programowania obiektowego
• Podstawowe pojêcia jêzyka C++
• Programowanie klas
• Dziedziczenie i polimorfizm
• Sk³adowe dynamiczne i statyczne
• Szablony jêzyka C++
• Szczegó³owe omówienie standardowej biblioteki wej cia-wyj cia
Ksi¹¿ka ta jest idealnym podrêcznikiem umo¿liwiaj¹cym studiowanie jêzyka C++
w domowym zaciszu. Prezentuje ona zagadnienia podstawowe, ale w wielu przypadkach
przekracza je dostarczaj¹c prawdziwie profesjonalnej wiedzy.
Wyczerpuj¹cy, szczegó³owy, praktyczny i aktualny podrêcznik programowania w jêzyku C++.
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
2. 5RKU VTG EK
2TGFOQYC
4QFKC 1 MUKæ EG
1.1. Dlaczego napisałem tę ksią kę?......................................................................................13
1.2. Wymagania .....................................................................................................................14
1.3. Organizacja ksią ki.........................................................................................................14
1.4. W jaki sposób nale y czytać ksią kę? ............................................................................15
1.5. Przykłady programów i dodatkowe informacje..............................................................15
4QFKC 9RTQYCFGPKG Lú[M %
K RTQITCOQYCPKG QDKGMVQYG
2.1. Język C++ .......................................................................................................................19
2.1.1. Kryteria projektowania .........................................................................................19
2.1.2. Historia języka ......................................................................................................20
2.2. C++ jako język programowania obiektowego ................................................................20
2.2.1. Obiekty, klasy i instancje......................................................................................21
2.2.2. Klasy w języku C++ .............................................................................................23
2.2.3. Hermetyzacja danych............................................................................................25
2.2.4. Dziedziczenie........................................................................................................27
2.2.5. Polimorfizm ..........................................................................................................28
2.3. Inne koncepcje języka C++.............................................................................................29
2.3.1. Obsługa wyjątków ................................................................................................30
2.3.2. Szablony................................................................................................................30
2.3.3. Przestrzenie nazw..................................................................................................32
2.4. Terminologia...................................................................................................................32
4QFKC 2QFUVCYQYG RQLúEKC Lú[MC %
3.1. Pierwszy program ...........................................................................................................35
3.1.1. „Hello, World!”.....................................................................................................35
3.1.2. Komentarze w języku C++ ...................................................................................37
3.1.3. Funkcja main() ......................................................................................................37
3.1.4. Wejście i wyjście ..................................................................................................39
3.1.5. Przestrzenie nazw..................................................................................................40
3.1.6. Podsumowanie ......................................................................................................41
3.2. Typy, operatory i instrukcje sterujące.............................................................................41
3.2.1. Pierwszy program, który przeprowadza obliczenia ..............................................41
3.2.2. Typy podstawowe .................................................................................................44
3. 4 C++. Programowanie zorientowane obiektowo. Vademecum profesjonalisty
3.2.3. Operatory ..............................................................................................................48
3.2.4. Instrukcje sterujące ...............................................................................................54
3.2.5. Podsumowanie ......................................................................................................57
3.3. Funkcje i moduły ............................................................................................................58
3.3.1. Pliki nagłówkowe..................................................................................................58
3.3.2. Plik źródłowy zawierający definicję.....................................................................60
3.3.3. Plik źródłowy zawierający wywołanie funkcji .....................................................60
3.3.4. Kompilacja i konsolidacja.....................................................................................61
3.3.5. Rozszerzenia nazw plików....................................................................................62
3.3.6. Systemowe pliki nagłówkowe i biblioteki............................................................63
3.3.7. Preprocesor ...........................................................................................................63
3.3.8. Przestrzenie nazw..................................................................................................66
3.3.9. Słowo kluczowe static...........................................................................................67
3.3.10. Podsumowanie ....................................................................................................69
3.4. Łańcuchy znaków ...........................................................................................................70
3.4.1. Pierwszy przykład programu wykorzystującego łańcuchy znaków .....................70
3.4.2. Kolejny przykładowy program wykorzystujący łańcuchy znaków ......................74
3.4.3. Przegląd operacji na łańcuchach znaków .............................................................78
3.4.4. Łańcuchy znaków i C-łańcuchy............................................................................79
3.4.5. Podsumowanie ......................................................................................................80
3.5. Kolekcje ..........................................................................................................................80
3.5.1. Program wykorzystujący klasę vector ..................................................................81
3.5.2. Program wykorzystujący klasę deque...................................................................82
3.5.3. Wektory i kolejki ..................................................................................................83
3.5.4. Iteratory.................................................................................................................84
3.5.5. Przykładowy program wykorzystujący listy.........................................................87
3.5.6. Przykłady programów wykorzystujących kontenery asocjacyjne ........................88
3.5.7. Algorytmy .............................................................................................................92
3.5.8. Algorytmy wielozakresowe ..................................................................................96
3.5.9. Iteratory strumieni.................................................................................................98
3.5.10. Uwagi końcowe ................................................................................................100
3.5.11. Podsumowanie ..................................................................................................101
3.6. Obsługa wyjątków ........................................................................................................102
3.6.1. Powody wprowadzenia obsługi wyjątków..........................................................102
3.6.2. Koncepcja obsługi wyjątków..............................................................................104
3.6.3. Standardowe klasy wyjątków .............................................................................105
3.6.4. Przykład obsługi wyjątku....................................................................................106
3.6.5. Obsługa nieoczekiwanych wyjątków..................................................................109
3.6.6. Funkcje pomocnicze obsługi błędów..................................................................110
3.6.7. Podsumowanie ....................................................................................................111
3.7. Wskaźniki, tablice i C-łańcuchy ...................................................................................112
3.7.1. Wskaźniki ...........................................................................................................112
3.7.2. Tablice.................................................................................................................115
3.7.3. C-łańcuchy ..........................................................................................................117
3.7.4. Podsumowanie ....................................................................................................121
3.8. Zarządzanie pamięcią za pomocą operatorów new i delete..........................................121
3.8.1. Operator new.......................................................................................................123
3.8.2. Operator delete....................................................................................................123
4. Spis treści 5
3.8.3. Dynamiczne zarządzanie pamięcią tablic ...........................................................124
3.8.4. Obsługa błędów związanych z operatorem new.................................................126
3.8.5. Podsumowanie ....................................................................................................126
3.9. Komunikacja ze światem zewnętrznym .......................................................................126
3.9.1. Parametry wywołania programu .........................................................................126
3.9.2. Dostęp do zmiennych środowiska ......................................................................128
3.9.3. Przerwanie działania programu...........................................................................128
3.9.4. Wywoływanie innych programów......................................................................129
3.9.5. Podsumowanie ....................................................................................................130
4QFKC 2TQITCOQYCPKG MNCU
4.1. Pierwsza klasa: Fraction ...............................................................................................131
4.1.1. Zanim rozpoczniemy implementację..................................................................131
4.1.2. Deklaracja klasy Fraction ...................................................................................134
4.1.3. Struktura klasy ....................................................................................................135
4.1.4. Funkcje składowe................................................................................................138
4.1.5. Konstruktory .......................................................................................................138
4.1.6. Przecią enie funkcji ............................................................................................140
4.1.7. Implementacja klasy Fraction .............................................................................141
4.1.8. Wykorzystanie klasy Fraction.............................................................................146
4.1.9. Tworzenie obiektów tymczasowych...................................................................151
4.1.10. Notacja UML ....................................................................................................152
4.1.11. Podsumowanie ..................................................................................................152
4.2. Operatory klas...............................................................................................................153
4.2.1. Deklaracje operatorów ........................................................................................153
4.2.2. Implementacja operatorów..................................................................................156
4.2.3. Posługiwanie się operatorami .............................................................................163
4.2.4. Operatory globalne..............................................................................................164
4.2.5. Ograniczenia w definiowaniu operatorów ..........................................................165
4.2.6. Specjalne właściwości niektórych operatorów ...................................................166
4.2.7. Podsumowanie ....................................................................................................170
4.3. Optymalizacja efektywności kodu................................................................................170
4.3.1. Wstępna optymalizacja klasy Fraction ...............................................................171
4.3.2. Domyślne parametry funkcji...............................................................................174
4.3.3. Funkcje rozwijane w miejscu wywołania ...........................................................175
4.3.4. Optymalizacja z perspektywy u ytkownika .......................................................177
4.3.5. Instrukcja using...................................................................................................178
4.3.6. Deklaracje pomiędzy instrukcjami .....................................................................179
4.3.7. Konstruktory kopiujące.......................................................................................181
4.3.8. Podsumowanie ....................................................................................................182
4.4. Referencje i stałe...........................................................................................................183
4.4.1. Konstruktory kopiujące i przekazywanie parametrów .......................................183
4.4.2. Referencje ...........................................................................................................184
4.4.3. Stałe.....................................................................................................................187
4.4.4. Stałe funkcje składowe .......................................................................................189
4.4.5. Klasa Fraction wykorzystująca referencje ..........................................................190
4.4.6. Wskaźniki stałych i stałe wskaźniki ...................................................................193
4.4.7. Podsumowanie ....................................................................................................195
5. 6 C++. Programowanie zorientowane obiektowo. Vademecum profesjonalisty
4.5. Strumienie wejścia i wyjścia.........................................................................................196
4.5.1. Strumienie ...........................................................................................................196
4.5.2. Korzystanie ze strumieni.....................................................................................197
4.5.3. Stan strumienia....................................................................................................203
4.5.4. Operatory wejścia i wyjścia dla typów definiowanych przez u ytkownika .......205
4.5.5. Podsumowanie ....................................................................................................214
4.6. Klasy zaprzyjaźnione i inne typy..................................................................................214
4.6.1. Automatyczna konwersja typów.........................................................................215
4.6.2. Słowo kluczowe explicit .....................................................................................217
4.6.3. Funkcje zaprzyjaźnione ......................................................................................217
4.6.4. Funkcje konwersji...............................................................................................223
4.6.5. Problemy automatycznej konwersji typu............................................................225
4.6.6. Inne zastosowania słowa kluczowego friend......................................................227
4.6.7. Słowo kluczowe friend i programowanie obiektowe..........................................227
4.6.8. Podsumowanie ....................................................................................................228
4.7. Obsługa wyjątków w klasach .......................................................................................229
4.7.1. Powody zastosowania obsługi wyjątków w klasie Fraction ...............................229
4.7.2. Obsługa wyjątków w klasie Fraction..................................................................230
4.7.3. Klasy wyjątków ..................................................................................................237
4.7.4. Ponowne wyrzucenie wyjątku ............................................................................237
4.7.5. Wyjątki w destruktorach .....................................................................................238
4.7.6. Wyjątki i deklaracje interfejsów .........................................................................238
4.7.7. Hierarchie klas wyjątków ...................................................................................239
4.7.8. Projektowanie klas wyjątków .............................................................................242
4.7.9. Wyrzucanie standardowych wyjątków ...............................................................244
4.7.10. Bezpieczeństwo wyjątków................................................................................244
4.7.11. Podsumowanie ..................................................................................................245
4QFKC KGFKEGPKG K RQNKOQTHKO
5.1. Dziedziczenie pojedyncze.............................................................................................249
5.1.1. Klasa Fraction jako klasa bazowa.......................................................................249
5.1.2. Klasa pochodna RFraction..................................................................................251
5.1.3. Deklaracja klasy pochodnej RFraction ...............................................................253
5.1.4. Dziedziczenie i konstruktory ..............................................................................255
5.1.5. Implementacja klas pochodnych.........................................................................258
5.1.6. Wykorzystanie klasy pochodnej .........................................................................260
5.1.7. Konstruktory obiektów klasy bazowej................................................................262
5.1.8. Podsumowanie ....................................................................................................264
5.2. Funkcje wirtualne .........................................................................................................264
5.2.1. Problemy z przesłanianiem funkcji.....................................................................265
5.2.2. Statyczne i dynamiczne wiązanie funkcji ...........................................................267
5.2.3. Przecią enie i przesłanianie ................................................................................271
5.2.4. Dostęp do parametrów klasy bazowej ................................................................273
5.2.5. Destruktory wirtualne .........................................................................................274
5.2.6. Właściwe sposoby stosowania dziedziczenia .....................................................275
5.2.7. Inne pułapki przesłaniania funkcji ......................................................................279
5.2.8. Dziedziczenie prywatne i deklaracje dostępu .....................................................281
5.2.9. Podsumowanie ....................................................................................................284
6. Spis treści 7
5.3. Polimorfizm ..................................................................................................................285
5.3.1. Czym jest polimorfizm?......................................................................................285
5.3.2. Polimorfizm w języku C++.................................................................................287
5.3.3. Przykład polimorfizmu w języku C++................................................................288
5.3.4. Abstrakcyjna klasa bazowa GeoObj ...................................................................291
5.3.5. Zastosowanie polimorfizmu wewnątrz klas........................................................298
5.3.6. Polimorfizm nie wymaga instrukcji wyboru.......................................................304
5.3.7. Przywracanie obiektowi jego rzeczywistej klasy ...............................................304
5.3.8. Projektowanie przez kontrakt .............................................................................308
5.3.9. Podsumowanie ....................................................................................................309
5.4. Dziedziczenie wielokrotne............................................................................................310
5.4.1. Przykład dziedziczenia wielokrotnego ...............................................................310
5.4.2. Wirtualne klasy bazowe......................................................................................315
5.4.3. Identyczność i adresy..........................................................................................318
5.4.4. Wielokrotne dziedziczenie tej samej klasy bazowej...........................................321
5.4.5. Podsumowanie ....................................................................................................321
5.5. Pułapki projektowania z u yciem dziedziczenia ..........................................................322
5.5.1. Dziedziczenie kontra zawieranie ........................................................................322
5.5.2. Błędy projektowania: ograniczanie dziedziczenia..............................................323
5.5.3. Błędy projektowania: dziedziczenie zmieniające wartość..................................324
5.5.4. Błędy projektowania: dziedziczenie zmieniające interpretację wartości............326
5.5.5. Unikajmy dziedziczenia! ....................................................................................327
5.5.6. Podsumowanie ....................................................................................................327
4QFKC 5M CFQYG F[PCOKEPG K UVCV[EPG
6.1. Składowe dynamiczne ..................................................................................................329
6.1.1. Implementacja klasy String.................................................................................329
6.1.2. Konstruktory i składowe dynamiczne.................................................................334
6.1.3. Implementacja konstruktora kopiującego ...........................................................336
6.1.4. Destruktory .........................................................................................................337
6.1.5. Implementacja operatora przypisania .................................................................337
6.1.6. Pozostałe operatory.............................................................................................339
6.1.7. Wczytywanie łańcucha klasy String ...................................................................341
6.1.8. Komercyjne implementacje klasy String ............................................................344
6.1.9. Inne zastosowania składowych dynamicznych...................................................346
6.1.10. Podsumowanie ..................................................................................................347
6.2. Inne aspekty składowych dynamicznych......................................................................348
6.2.1. Składowe dynamiczne w obiektach stałych........................................................348
6.2.2. Funkcje konwersji dla składowych dynamicznych.............................................351
6.2.3. Funkcje konwersji i instrukcje warunkowe ........................................................353
6.2.4. Stałe jako zmienne ..............................................................................................355
6.2.5. Zapobieganie wywołaniu domyślnych operacji..................................................357
6.2.6. Klasy zastępcze...................................................................................................358
6.2.7. Obsługa wyjątków z u yciem parametrów .........................................................361
6.2.8. Podsumowanie ....................................................................................................365
6.3. Dziedziczenie i klasy o składowych dynamicznych.....................................................365
6.3.1. Klasa CPPBook::String jak klasa bazowa ..........................................................365
6.3.2 Klasa pochodna ColString ..................................................................................368
6.3.3. Dziedziczenie funkcji zaprzyjaźnionych ............................................................371
7. 8 C++. Programowanie zorientowane obiektowo. Vademecum profesjonalisty
6.3.4. Plik źródłowy klasy pochodnej ColString ..........................................................373
6.3.5. Aplikacja klasy ColString ...................................................................................374
6.3.6. Dziedziczenie specjalnych funkcji dla składowych dynamicznych ...................375
6.3.7. Podsumowanie ....................................................................................................376
6.4. Klasy zawierające klasy................................................................................................376
6.4.1. Obiekty jako składowe innych klas ....................................................................377
6.4.2. Implementacja klasy Person ...............................................................................377
6.4.3. Podsumowanie ....................................................................................................383
6.5. Składowe statyczne i typy pomocnicze ........................................................................383
6.5.1. Statyczne składowe klas .....................................................................................384
6.5.2. Deklaracje typu wewnątrz klasy .........................................................................389
6.5.3. Typy wyliczeniowe jako statyczne stałe klasy ...................................................391
6.5.4. Klasy zagnie d one i klasy lokalne ....................................................................392
6.5.5. Podsumowanie ....................................................................................................393
4QFKC 5CDNQP[
7.1. Dlaczego szablony? ......................................................................................................395
7.1.1. Terminologia.......................................................................................................396
7.2. Szablony funkcji ...........................................................................................................396
7.2.1. Definiowanie szablonów funkcji ........................................................................397
7.2.2. Wywoływanie szablonów funkcji.......................................................................398
7.2.3. Praktyczne wskazówki dotyczące u ywania szablonów ....................................399
7.2.4. Szablony i automatyczna konwersja typu...........................................................399
7.2.5. Przecią anie szablonów ......................................................................................400
7.2.6. Zmienne lokalne..................................................................................................402
7.2.7. Podsumowanie ....................................................................................................402
7.3. Szablony klas ................................................................................................................403
7.3.1. Implementacja szablonu klasy Stack ..................................................................403
7.3.2. Zastosowanie szablonu klasy Stack ....................................................................406
7.3.3. Specjalizacja szablonów klas..............................................................................408
7.3.4. Domyślne parametry szablonu............................................................................410
7.3.5. Podsumowanie ....................................................................................................412
7.4. Inne parametry szablonów ............................................................................................412
7.4.1. Przykład zastosowania innych parametrów szablonów......................................412
7.4.2. Ograniczenia parametrów szablonów .................................................................415
7.4.3. Podsumowanie ....................................................................................................416
7.5. Inne zagadnienia związane z szablonami .....................................................................416
7.5.1. Słowo kluczowe typename .................................................................................416
7.5.2. Składowe jako szablony......................................................................................417
7.5.3. Polimorfizm statyczny z u yciem szablonów.....................................................420
7.5.4. Podsumowanie ....................................................................................................424
7.6. Szablony w praktyce .....................................................................................................424
7.6.1. Kompilacja kodu szablonu..................................................................................424
7.6.2. Obsługa błędów ..................................................................................................429
7.6.3. Podsumowanie ....................................................................................................430
4QFKC 5VCPFCTFQYC DKDNKQVGMC YGL EKC K Y[L EKC Y UEGIÎ CEJ
8.1. Standardowe klasy strumieni ........................................................................................433
8.1.1. Klasy strumieni i obiekty strumieni....................................................................434
8.1.2. Stan strumienia....................................................................................................436
8. Spis treści 9
8.1.3. Operatory standardowe .......................................................................................439
8.1.4. Funkcje standardowe ..........................................................................................440
8.1.5. Manipulatory.......................................................................................................443
8.1.6. Definicje formatu ................................................................................................445
8.1.7. Internacjonalizacja ..............................................................................................455
8.1.8. Podsumowanie ....................................................................................................458
8.2. Dostęp do plików ..........................................................................................................458
8.2.1. Klasy strumieni dla plików .................................................................................458
8.2.2. Wykorzystanie klas strumieni plików.................................................................459
8.2.3. Znaczniki plików ................................................................................................461
8.2.4. Jawne otwieranie i zamykanie plików ................................................................462
8.2.5. Swobodny dostęp do plików...............................................................................463
8.2.6. Przekierowanie standardowych kanałów do plików...........................................466
8.2.7. Podsumowanie ....................................................................................................467
8.3. Klasy strumieni łańcuchów...........................................................................................467
8.3.1. Klasy strumieni łańcuchów.................................................................................468
8.3.2. Operator rzutowania leksykalnego .....................................................................470
8.3.3. Strumienie C-łańcuchów.....................................................................................472
8.3.4. Podsumowanie ....................................................................................................474
4QFKC +PPG Y C EKYQ EK Lú[MC
9.1. Dodatkowe informacje o bibliotece standardowej........................................................475
9.1.1. Operacje na wektorach........................................................................................475
9.1.2. Operacje wspólne dla wszystkich kontenerów STL ...........................................482
9.1.3. Algorytmy STL...................................................................................................482
9.1.4. Ograniczenia wartości numerycznych ................................................................488
9.1.5. Podsumowanie ....................................................................................................492
9.2. Definiowanie specjalnych operatorów..........................................................................493
9.2.1. Inteligentne wskaźniki ........................................................................................493
9.2.2. Obiekty funkcji ...................................................................................................496
9.2.3. Podsumowanie ....................................................................................................500
9.3. Inne aspekty operatorów new i delete...........................................................................500
9.3.1. Operatory new i delete, które nie wyrzucają wyjątków......................................500
9.3.2. Określanie poło enia obiektu..............................................................................501
9.3.3. Funkcje obsługi operatora new ...........................................................................501
9.3.4. Przecią anie operatorów new i delete.................................................................506
9.3.5. Dodatkowe parametry operatora new .................................................................509
9.3.6. Podsumowanie ....................................................................................................510
9.4. Wskaźniki funkcji i wskaźniki składowych..................................................................510
9.4.1. Wskaźniki funkcji ...............................................................................................510
9.4.2. Wskaźniki składowych .......................................................................................511
9.4.3. Wskaźniki składowych i zewnętrzne interfejsy..................................................514
9.4.4. Podsumowanie ....................................................................................................515
9.5. Łączenie programów w językach C i C++....................................................................516
9.5.1. Łączenie zewnętrzne...........................................................................................516
9.5.2. Pliki nagłówkowe w językach C i C++ ..............................................................517
9.5.3. Kompilacja funkcji main()..................................................................................517
9.5.4. Podsumowanie ....................................................................................................518
9. 10 C++. Programowanie zorientowane obiektowo. Vademecum profesjonalisty
9.6. Dodatkowe słowa kluczowe .........................................................................................518
9.6.1. Unie.....................................................................................................................518
9.6.2. Typy wyliczeniowe.............................................................................................519
9.6.3. Słowo kluczowe volatile .....................................................................................520
9.6.4. Podsumowanie ....................................................................................................520
4QFKC 2QFUWOQYCPKG
10.1. Hierarchia operatorów języka C++.............................................................................521
10.2. Właściwości operacji klas...........................................................................................523
10.3. Zasady automatycznej konwersji typów.....................................................................524
10.4. Przydatne zasady programowania i projektowania ....................................................525
QFCVGM # $KDNKQITCHKC
QFCVGM $ 5 QYPKM
5MQTQYKF
10. Rozdział 7.
5CDNQP[
W rozdziale tym przedstawiona zostanie koncepcja szablonów. Szablony umo liwiają
parametryzację kodu dla ró nych typów. Dzięki temu na przykład funkcja wyznaczają-
ca najmniejszą wartość lub klasa kolekcji mo e zostać zaimplementowana, zanim usta-
lony zostanie typ parametru funkcji lub elementu kolekcji. Kod generowany na podsta-
wie szablonu nie przetwarza jednak dowolnych typów: w momencie, gdy ustalony
zostanie typ parametru. Obowiązuje równie zwykła kontrola zgodności typów.
Najpierw przedstawione zostaną szablony funkcji, a następnie szablony klas. Omówie-
nie szablonów zakończymy przedstawieniem sposobów ich wykorzystania, w tym spe-
cjalnych technik projektowania.
Więcej informacji na temat szablonów mo na znaleźć w ksią ce C++ Templates — The
Complete Guide1, której autorami są Nicolai M. Josuttis i David Vandevoorde (patrz
VandevoordeJosuttisTemplate). Ksią ka ta zawiera podobne wprowadzenie do proble-
matyki szablonów, wyczerpujący opis szablonów, szeregu technik kodowania i zaawan-
sowanych zastosowań szablonów.
NCEGIQ UCDNQP[!
W językach programowania, które wią ą zmienne z określonym typem danych, często
pojawia się sytuacja wymagająca wielokrotnego zdefiniowania tej samej funkcji dla
ró nych typów parametrów. Typowym przykładem jest funkcja zwracająca większą
z przekazanych jej dwóch wartości. Musi ona zostać zaimplementowana osobno dla
ka dego typu, dla którego chcemy ja wykorzystywać. W języku C mo na tego uniknąć,
posługując się makrodefinicją. Poniewa działanie makrodefinicji polega na mecha-
nicznym zastępowaniu przez preprocesor jednego tekstu programu innym, rozwiązanie
takie nie jest zalecane (ze względu na brak kontroli zgodności typów, mo liwość wy-
stąpienia efektów ubocznych, etc.).
Nie tylko wielokrotna implementacja funkcji wymaga dodatkowej pracy. Podobna sytu-
acja występuje w przypadku implementacji zaawansowanych typów, takich jak konte-
nery. Zarządzanie kolekcją elementów kontenera wymaga implementacji szeregu funkcji,
1
C++. Szablony. Vademecum profesjonalisty, Helion 2003.
11. 396 C++. Programowanie zorientowane obiektowo. Vademecum profesjonalisty
w przypadku których istotny jest przede wszystkim typ elementu kolekcji. Gdyby nie
mo liwość wykorzystania specjalnych właściwości języka C++, wszystkie te funkcje
musiałyby być implementowane za ka dym razem, gdy pojawia się nowy typ elemen-
tów kolekcji.
Stos jest typowym przykładem, w którym pojawia się wiele implementacji słu ących
zarządzaniu ró nymi obiektami. Stos umo liwia przechowywanie i usuwanie elemen-
tów konkretnego typu. Jeśli stosowalibyśmy poznane dotychczas konstrukcje języka
C++, zmuszeni bylibyśmy implementować jego operacje osobno dla ka dego typu ele-
mentów, które mogą być umieszczone na stosie, poniewa deklaracja stosu wymaga
podania typu jego elementów. Te same operacje musielibyśmy więc implementować
wielokrotnie, mimo, e rzeczywisty algorytm nie ulega zmianie. Nie tylko wymaga to
dodatkowej pracy, ale mo e stać się tak e źródłem błędów.
Dlatego te w języku C++ wprowadzono szablony. Szablony reprezentują funkcje bądź
klasy, które nie zostały zaimplementowane dla konkretnego typu, poniewa typ ten zo-
stanie dopiero zdefiniowany. Aby u yć szablonu funkcji lub klasy, programista aplika-
cji musi określić typ, dla którego dany szablom zostanie zrealizowany. Wystarczy więc,
e funkcja wyznaczająca większą z dwóch wartości zostanie zaimplementowana tylko
raz — jako szablon. Podobnie kontenery, takie jak stosy, listy itp., wymagają tylko jed-
nokrotnego zaimplementowania i przetestowania, a następnie mogą być wykorzystywane
dla dowolnego typu elementów, który umo liwia przeprowadzanie odpowiednich operacji.
Sposoby definiowania i posługiwania się szablonami zostaną wyjaśnione poni ej, naj-
pierw dla funkcji na przykładzie funkcji OCZ
, a następnie dla klas, na przykładzie stosu.
6GTOKPQNQIKC
Terminologia związana z szablonami nie jest ściśle zdefiniowana. Na przykład funkcja,
której typ został sparametryzowany, nazywana jest czasami szablonem funkcji, a innym
razem funkcją szablonu. Poniewa drugie z tych określeń jest nieco mylące (mo e okre-
ślać szablon funkcji, ale tak e funkcję nie związaną z szablonem), powinno się raczej
u ywać określenia szablon funkcji. Podobnie klasa sparametryzowana ze względu na
typ powinna być nazywana szablonem klasy, a nie klasą szablonu.
Proces, w którym przez podstawienie do szablonu wartości parametru powstaje zwykła
klasa, funkcja lub funkcja składowa, nazywany jest tworzeniem instancji szablonu. Nie-
stety, termin „tworzenie instancji” u ywany jest tak e w terminologii obiektowej dla
określenia tworzenia obiektu danej klasy. Dlatego te znaczenie terminu „tworzenie in-
stancji” zale y w przypadku języka C++ od kontekstu, w którym zostaje on u yty.
5CDNQP[ HWPMELK
Jak ju wspomnieliśmy, szablony funkcji umo liwiają definiowanie grup funkcji, które
mogą następnie zostać u yte dla ró nych typów.
12. Rozdział 7. Szablony 397
W przeciwieństwie do działania makrodefinicji, działanie szablonów nie polega na me-
chanicznym zastępowaniu tekstów. Semantyka funkcji zostaje sprawdzona przez kom-
pilator, co pozwala zapobiec niepo ądanym efektom ubocznym. Nie istnieje na przy-
kład (tak jak w przypadku makrodefinicji) niebezpieczeństwo wielokrotnego zastąpienia
parametru P
, na skutek którego pojedyncza instrukcja inkrementacji staje się wielo-
krotną inkrementacją.
GHKPKQYCPKG UCDNQPÎY HWPMELK
Szablony funkcji definiowane są jak zwykłe funkcje, a parametryzowany typ poprzedza
ich deklarację. Na przykład szablon funkcji wyznaczającej większą z dwóch wartości
zostanie zadeklarowany w następujący sposób:
VGORNCVG V[RGPCOG 6
EQPUV 6 OCZ
EQPUV 6 EQPUV 6
W pierwszym wierszu zadeklarowany został parametr typu 6. Słowo kluczowe V[RGPCOG
oznacza, e następujący po nim symbol reprezentuje typ. Słowo to zostało wprowadzone
w języku C++ stosunkowo późno. Wcześniej u ywano zamiast niego słowa kluczowego
ENCUU:
VGORNCVG ENCUU 6
Pomiędzy słowami tymi nie ma ró nic semantycznych. U ycie słowa kluczowego ENCUU
nie wymaga, by parametryzowany typ był klasą. U ywając obu słów kluczowych mo-
emy korzystać z dowolnych typów (podstawowych, klas etc.) pod warunkiem, e
umo liwiają one wykonywanie operacji u ywanych przez szablon. W naszym przykła-
dzie dla typu 6 musi być zdefiniowany operator porównania (), którego u ywa imple-
mentacja szablonu funkcji OCZ
.
Zastosowanie symbolu 6 dla typu szablonu nie jest wymagane, ale w praktyce bywa
często stosowane. W poni szej deklaracji symbol 6 u ywany jest w celu określenie typu
funkcji oraz typu jej parametrów:
VORNOCZJRR
VGORNCVG V[RGPCOG 6
EQPUV 6 OCZ
EQPUV 6 C EQPUV 6 D
]
TGVWTP C D ! C D
_
Instrukcje umieszczone w ciele szablonu nie ró nią się niczym od instrukcji zwykłej
implementacji funkcji. W powy szym przykładzie porównywane są dwie wartości typu
6 i zwracana jest większa z nich. Zastosowanie referencji stałych (EQPUV 6 ) zapobiega
tworzeniu kopii parametrów funkcji i wartości zwracanych przez funkcję (patrz podroz-
dział 4.4).
13. 398 C++. Programowanie zorientowane obiektowo. Vademecum profesjonalisty
9[YQ [YCPKG UCDNQPÎY HWPMELK
Szablonu funkcji u ywamy w taki sam sposób, jak zwykłej funkcji. Demonstruje to po-
ni szy program2:
VORNOCZERR
KPENWFG KQUVTGCO
KPENWFG UVTKPI
KPENWFG OCZJRR
KPV OCKP
]
KPV C D FYKG OKGPPG V[RW KPV
UVFUVTKPI U V FYKG OKGPPG V[RW UVFUVTKPI
UVFEQWV OCZ
CD UVFGPFN OCZ
FNC FYÎEJ YCTVQ EK EC MQYKV[EJ
UVFEQWV OCZ
UV UVFGPFN OCZ
FNC FYÎEJ C EWEJÎY
_
Dopiero w momencie, gdy funkcja OCZ
zostaje wywołana dla dwóch obiektów takiego
samego typu, szablon staje się rzeczywistym kodem. Kompilator wykorzystuje definicję
szablonu i tworzy jego instancję, zastępując typ 6 typem KPV lub UVFUVTKPI. W ten
sposób tworzony jest rzeczywisty kod implementacji dla typu KPV bądź typu UVF
UVTKPI. Szablony nie są więc kompilowane jako kod, który mo e działać z dowolnym
typem danych, lecz jedynie wykorzystywane w celu wygenerowania kodu dla konkret-
nego typu. Jeśli szablon OCZ
zostanie wywołany dla siedmiu ró nych typów, to skom-
pilowanych zostanie siedem funkcji.
Proces, w którym na podstawie szablonu generowany jest kod, który zostanie skompi-
lowany, nazywany jest tworzeniem instancji lub, precyzyjniej (ze względu na zastoso-
wanie określenia „tworzenie instancji” w terminologii obiektowej), tworzeniem instan-
cji szablonu.
Utworzenie instancji szablonu jest oczywiście mo liwe tylko wtedy, gdy dla danego typu
zdefiniowane są wszystkie operacje u ywane przez szablon. Aby mo liwe było utwo-
rzenie instancji szablonu OCZ
dla typu UVFUVTKPI, w klasie UVFUVTKPI musi być
zdefiniowany operator porównania ().
Zauwa my, e w przeciwieństwie do działania makrodefinicji, działanie szablonów nie
polega na zastępowaniu tekstów. Wywołanie
OCZ
Z
14. nie jest mo e szczególnie u yteczne, ale będzie działać poprawnie. Zwróci większą
wartość jednego z przekazanych jej wyra eń, a ka de z wyra eń wartościowane będzie
tylko raz (czyli zmienna Z będzie inkrementowana jeden raz).
2
Wywołanie szablonu OCZ
dla typu string zostało jawnie poprzedzone operatorem globalnego zakresu,
poniewa w standardowej bibliotece zdefiniowana jest funkcja UVFOCZ
. Poniewa typ UVTKPI równie
znajduje się w przestrzeni nazw UVF, to funkcja OCZ
nie poprzedzona operatorem zakresu zostałaby
odnaleziona właśnie w tej przestrzeni (patrz „Wyszukiwanie Koeniga”, str. 179).
15. Rozdział 7. Szablony 399
2TCMV[EPG YUMCÎYMK FQV[EæEG W [YCPKC UCDNQPÎY
Koncepcja szablonów wykracza poza zwykły model kompilacji (konsolidacji), wyko-
rzystujący odrębne jednostki translacji. Nie mo na na przykład umieścić szablonów
w osobnym module i skompilować go, a następnie osobno skompilować aplikacji u y-
wającej tych szablonów i skonsolidować oba uzyskane pliki wynikowe. Nie jest to
mo liwe, poniewa typ, dla którego ma zostać u yty szablon, zostaje określony dopiero
w momencie u ycia szablonu.
Istnieją ró ne sposoby rozwiązania tego problemu. Najprostszy i najbardziej uniwersalny
polega na umieszczeniu całego kodu szablonu w pliku nagłówkowym. Dołączając na-
stępnie zawartości pliku nagłówkowego do kodu aplikacji umo liwiamy generację
i kompilację kodu dla konkretnych typów.
Nieprzypadkowo więc definicja szablonu OCZ
z poprzedniego przykładu została
umieszczona w pliku nagłówkowym. Nale y przy tym zauwa yć, e słowo kluczowe
KPNKPG (patrz podrozdział 4.3.3) nie musi być zastosowane. W przypadku szablonów
dopuszczalne jest istnienie wielu definicji w ró nych jednostkach translacji. Jeśli jednak
preferujemy rozwijanie szablonu funkcji w miejscu jego wywołania, powinniśmy zasy-
gnalizować to kompilatorowi właśnie za pomocą słowa kluczowego KPNKPG.
Więcej zagadnień związanych z posługiwaniem się szablonami zostanie omówionych
w podrozdziale 7.6.
5CDNQP[ K CWVQOCV[EPC MQPYGTULC V[RW
Podczas tworzenia instancji szablonu nie jest brana pod uwagę automatyczna konwersja
typu. Jeśli szablon posiada wiele parametrów typu 6, przekazane mu argumenty muszą
być tego samego typu. Wywołanie szablonu OCZ
dla obiektów ró nych typów nie jest
więc mo liwe:
VGORNCVG V[RGPCOG 6
EQPUV 6 OCZ
EQPUV 6 EQPUV QDC RCTCOGVT[ OCLæ V[R 6
KPV K
NQPI N
OCZ
KN $ ä OKGPPG K QTC N RQUKCFCLæ TÎ PG V[R[
,CYPC MYCNKHKMCELC
Wywołując szablon mo emy zastosować jawną kwalifikację typu, dla którego zostanie
on u yty:
OCZNQPI
K N Y[YQ CPKG UCDNQPW OCZ
FNC V[RW NQPI
W tym przypadku tworzona jest instancja szablonu funkcji OCZ
dla typu NQPI jako pa-
rametru 6 szablonu. Następnie, podobnie jak w przypadku zwykłych funkcji, kompilator
sprawdza, czy przekazane parametry mogą być u yte jako wartości typu NQPI, co jest
mo liwe w naszym przykładzie ze względu na istnienie domyślnej konwersji typu KPV
do typu NQPI.
16. 400 C++. Programowanie zorientowane obiektowo. Vademecum profesjonalisty
5CDNQP[ Q YKGNW RCTCOGVTCEJ
Szablon mo e zostać zdefiniowany tak e dla ró nych typów:
VGORNCVG V[RGPCOG 6 V[RGPCOG 6
KPNKPG 6 OCZ
EQPUV 6 EQPUV 6
]
TGVWTP C D ! D C
_
KPV K
NQPI N
OCZ
KN YTCEC YCTVQ è V[RW KPV
Problemem w tym przypadku jest typ wartości zwracanej przez funkcję, poniewa
w momencie definiowania szablonu nie wiemy, który z parametrów zostanie zwrócony.
Dodatkowo, jeśli zwrócony będzie drugi parametr, dla wartości zwracanej utworzony
zostanie lokalny obiekt tymczasowy, poniewa posiada ona inny typ. Obiekt tymczaso-
wy nie mo e zostać zwrócony przez referencję, wobec czego typ zwracany przez sza-
blon został zmieniony z EQPUV 6 na 6.
W takim przypadku lepszym rozwiązaniem jest mo liwość jawnej kwalifikacji.
2TGEKæ CPKG UCDNQPÎY
Szablony mogą być przecią ane dla pewnych typów. W ten sposób ogólna implementa-
cja szablonu mo e zostać zastąpiona inną implementacją dla konkretnych typów. Roz-
wiązanie takie posiada szereg zalet:
Szablony funkcji mogą zostać zdefiniowane dla dodatkowych typów oraz ich
kombinacji (na przykład mo e zostać zdefiniowana funkcja OCZ
o parametrach
typu HNQCV i %22$QQM(TCEVKQP).
Implementacje mogą zostać zoptymalizowane dla konkretnych typów.
Typy, dla których implementacja szablonu nie jest odpowiednia, mogą zostać
właściwie obsłu one.
Wywołanie szablonu OCZ
dla C-łańcuchów (typ EQPUV EJCT
20. OCZUVTKPI OCZ
UU $ ä RQTÎYPWLG CFTGU[
Implementacja szablonu porówna w tym przypadku adresy C-łańcuchów zamiast ich
zawartości (patrz podrozdział 3.7.3).
Problem ten mo emy rozwiązać poprzez przecią enie szablonu dla C-łańcuchów:
KPNKPG EQPUV EJCT
24. Rozdział 7. Szablony 401
Przecią enie szablonu mo e tak e dotyczyć wskaźników. Mo emy w ten sposób sprawić,
e jeśli szablon OCZ
zostanie wywołany dla wskaźników, porównane zostaną wska-
zywane przez nie obiekty, a nie ich adresy. Na przykład:
VGORNCVG V[RGPCOG 6
6
29. D ! C D
_
Zwróćmy uwagę, e jeśli wskaźnik ma zostać przekazany jako stała referencja, słowo
kluczowe EQPUV musi zostać umieszczone po znaku gwiazdki. W przeciwnym razie za-
deklarowany zostanie wskaźnik do stałej (patrz tak e podrozdział 4.4.6).
Przecią ając szablony funkcji powinniśmy wprowadzać jedynie niezbędne modyfikacje,
takie jak zmiany liczby parametrów czy jawne ich określenie. W przeciwnym razie
wprowadzone zmiany mogą stać się powodem powstawania nieoczekiwanych efektów.
Dlatego te w naszym przykładzie argumenty wszystkich przecią onych implementacji
powinny być przekazywane poprzez stałe referencje:
VORNOCZERR
KPENWFG KQUVTGCO
KPENWFG EUVTKPI
YTCEC YKúMUæ FYÎEJ YCTVQ EK FQYQNPGIQ V[RW
VGORNCVG V[RGPCOG 6
KPNKPG EQPUV 6 OCZ
EQPUV 6 C EQPUV 6 D
]
UVFEQWV OCZ
FNC 6 UVFGPFN
TGVWTP C D ! D C
_
FNC FYÎEJ YUMC PKMÎY
VGORNCVG V[RGPCOG 6
KPNKPG 6
47. QVVQ
OKGPPG NQMCNPG
Szablony funkcji mogą posiadać zmienne lokalne typu będącego parametrem szablonu.
Na przykład szablon funkcji zamieniającej wartości dwóch parametrów mo e zostać
zaimplementowany w następujący sposób (proszę porównać z implementacją funkcji
UYCR
przedstawioną na stronie 185).
VGORNCVG V[RGPCOG 6
XQKF UYCR
6 C 6 D
]
6 VOR
C
C D
D VOR
_
Zmienne lokalne mogą być równie statyczne. W takim przypadku tworzone są zmien-
ne statyczne wszystkich typów, dla których wywoływany jest szablon funkcji.
2QFUWOQYCPKG
Szablony są schematami kodu kompilowanego po wybraniu określonego typu
danych.
Tworzenie kodu w języku C++ na podstawie szablonu nazywamy tworzeniem
instancji szablonu.
48. Rozdział 7. Szablony 403
Szablony mogą posiadać wiele parametrów.
Szablony funkcji mogą być przecią ane.
5CDNQP[ MNCU
W takim sam sposób, jak parametryzowane są typy funkcji, mogą równie być parame-
tryzowane typy w klasach. Mo liwość taka jest szczególnie przydatna w przypadku
kontenerów u ywanych do zarządzania obiektami pewnego typu. Szablony klas mo emy
wykorzystać do implementacji kontenerów, dla których typ elementów nie jest jeszcze zna-
ny. W terminologii obiektowej szablony klas nazywane są klasami parametryzowanymi.
Implementacja szablonów klas zostanie omówiona na przykładzie klasy stosu. Imple-
mentacja ta wykorzystywać będzie szablon klasy XGEVQT , dostępny w bibliotece stan-
dardowej (patrz podrozdziały 3.5.1 i 9.1.1).
+ORNGOGPVCELC UCDNQPW MNCU[ 5VCEM
Podobnie, jak w przypadku szablonów funkcji, tak e deklaracja i definicja szablonu
klasy umieszczana jest zwykle w pliku nagłówkowym. Zawartość pliku nagłówkowego
klasy 5VCEM jest następująca:
VORNUVCEMJRR
KPENWFG XGEVQT
KPENWFG UVFGZEGRV
121. GMNCTCELC UCDNQPW MNCU[
Podobnie, jak w przypadku szablonu funkcji, deklaracja szablonu klasy poprzedzona
jest określeniem parametru typu 6 (parametrów szablonu mo e być oczywiście więcej):
VGORNCVG V[RGPCOG 6
ENCUU 5VCEM ]
_
Zamiast słowa kluczowego V[RGPCOG mo e być te u yte słowo ENCUU:
VGORNCVG ENCUU 6
ENCUU 5VCEM ]
_
Wewnątrz klasy typ 6 mo e być u ywany w deklaracjach składowych klasy i funkcji
składowych w taki sam sposób, jak ka dy zwykły typ. W naszym przykładzie elementy
stosu zarządzane są wewnątrz klasy za pomocą wektora o elementach typu 6 (szablon
jest zaimplementowany z u yciem innego szablonu), funkcja RWUJ
u ywa referencji
stałej typu 6 jako parametru, a funkcja VQR
zwraca obiekt typu 6.
Klasa stosu posiada typ 5VCEM6 , gdzie 6 jest parametrem szablonu. Typ ten musi zo-
stać u yty za ka dym razem, gdy posługujemy się klasą stosu. Nazwy 5VCEM u ywamy
jedynie podczas definiowania klasy oraz jej konstruktorów i destruktorów:
ENCUU 5VCEM ]
_
122. Rozdział 7. Szablony 405
Poni szy przykład przedstawia sposób u ycia szablonu klasy jako typu parametrów
funkcji lub wartości przez nie zwracanych (w deklaracjach konstruktora kopiującego
i operatora przypisania)3:
VGORNCVG V[RGPCOG 6
ENCUU 5VCEM ]
5VCEM
EQPUV 5VCEM6 MQPUVTWMVQT MQRKWLæE[
5VCEM6 QRGTCVQT
EQPUV 5VCEM6 QRGTCVQT RT[RKUCPKC
_
+ORNGOGPVCELC HWPMELK UM CFQY[EJ
Definiując funkcję składową szablonu klasy musimy określić jej przynale ność do sza-
blonu. Przykład implementacji funkcji RWUJ
pokazuje, e nazwa funkcji musi zostać
poprzedzona pełnym typem szablonu 5VCEM6 :
VGORNCVG V[RGPCOG 6
XQKF 5VCEM6 RWUJ
EQPUV 6 GNGO
]
GNGOURWUJADCEM
GNGO WOKGUEC MQRKú PC UVQUKG
_
Implementacja ta w rzeczywistości deleguje operację do odpowiedniej funkcji szablonu
klasy XGEVQT u ywanego wewnętrznie do zarządzania elementami stosu. Szczyt stosu
jest w tym przypadku równowa ny elementowi znajdującemu się na końcu wektora.
Zauwa my, e funkcja RQR
usuwa element ze szczytu stosu, ale go nie zwraca. Operacji
tej odpowiada funkcja RQRADCEM
wektora. Powodem takiego zachowania obu funkcji
jest niebezpieczeństwo związane z mo liwością wyrzucenia wyjątku (patrz podrozdział
4.7.10). Implementacja funkcji RQR
, która zwraca usunięty element i charakteryzuje
się wysokim poziomem bezpieczeństwa, nie jest mo liwa. Przeanalizujmy działanie
wersji funkcji RQR
zwracającej element usunięty ze szczytu stosu:
VGORNCVG V[RGPCOG 6
6 5VCEM6 RQR
]
KH
GNGOUGORV[
]
VJTQY UVFQWVAQHATCPIG
5VCEM RQR
RWUV[ UVQU
_
6 GNGO GNGOUDCEM
VYQT[ MQRKú GNGOGPVW PC UE[EKG
GNGOURQRADCEM
WUWYC GNGOGPV G UE[VW
TGVWTP GNGO YTCEC MQRKú GNGOGPVW MVÎT[ PCLFQYC UKú PC UE[EKG
_
Niebezpieczeństwo polega na mo liwości wyrzucenia wyjątku przez konstruktor ko-
piujący tworzący wartość zwracaną przez funkcję. Poniewa wcześniej element został
ju usunięty ze stosu, nie ma mo liwości przywrócenie wyjściowego stanu stosu, gdy
3
Standard języka C++ definiuje pewne zasady, które pozwalają określić kiedy u ycie typu 5VCEM zamiast
typu 5VCEM6 jest wystarczające wewnątrz deklaracji klasy. W praktyce łatwiej jednak jest u ywać zawsze
typu 5VCEM6 , gdy wymagany jest typ klasy.
123. 406 C++. Programowanie zorientowane obiektowo. Vademecum profesjonalisty
pojawi się wyjątek. Nale y podjąć decyzję, czy bardziej interesuje nas bezpieczne wy-
konanie funkcji, czy mo liwość uzyskania zwróconego obiektu4.
Zwróćmy tak e uwagę, e funkcje składowe RQRADCEM
i DCEM
(ta druga zwraca
ostatni element wektora) zachowują się w nieokreślony sposób, gdy wektor jest pusty
(patrz strony 479 i 481). Dlatego te funkcje szablonu klasy 5VCEM sprawdzają najpierw,
czy stos jest pusty, i wyrzucają wyjątek UVFQWVAQHATCPIG (patrz podrozdział 4.7.9):
VGORNCVGV[RGPCOG 6
6 5VCEM6 VQR
EQPUV
]
KH
GNGOUGORV[
]
VJTQY UVFQWVAQHATCPIG
5VCEM VQR
RWUV[ UVQU
_
TGVWTP GNGOUDCEM
YTCEC MQRKú UE[VW UVQUW
_
Funkcje składowe szablonu klasy mogą być te implementowane wewnątrz deklaracji
szablonu:
VGORNCVG V[RGPCOG 6
ENCUU 5VCEM ]
XQKF RWUJ
EQPUV 6 GNGO ]
GNGOURWUJADCEM
GNGO WOKGUEC PC UVQUKG MQRKú QDKGMVW
_
_
CUVQUQYCPKG UCDNQPW MNCU[ 5VCEM
Deklarując obiekt szablonu klasy musimy zawsze określić typ, który będzie parametrem
szablonu:
VORNUVGUVERR
KPENWFG KQUVTGCO
KPENWFG UVTKPI
KPENWFG EUVFNKD
KPENWFG UVCEMJRR
KPV OCKP
]
VT[ ]
%22$QQM5VCEMKPV KPV5VCEM UVQU NKED EC MQYKV[EJ
%22$QQM5VCEMUVFUVTKPI UVTKPI5VCEM UVQU C EWEJÎY
QRGTCELG PC UVQUKG NKED EC MQYKV[EJ
KPV5VCEMRWUJ
UVFEQWV KPV5VCEMVQR
UVFGPFN
KPV5VCEMRQR
QRGTCELG PC UVQUKG C EWEJÎY
4
Zagadnienie to zostało omówione po raz pierwszy przez Toma Cargilla w CargillExceptionSafety oraz
przedstawione zostało w SutterExceptional.
125. OUI ]
UVFEGTT 9[LæVGM OUI UVFGPFN
TGVWTP ':+6A(#+.74'
_
_
Instancja szablonu klasy tworzona jest dla podanego typu. Deklaracja stosu UVTKPI5VCEM
powoduje wygenerowanie kodu klasy 5VCEM dla typu UVFUVTKPI oraz dla wszystkich
funkcji składowych wywoływanych w programie.
Zwróćmy uwagę, e w przypadku tworzenia instancji szablonów klas generowany jest
kod jedynie dla tych funkcji składowych, które rzeczywiście są wywoływane. Jest to
istotne nie tylko z punktu widzenia efektywności. Umo liwia tak e stosowanie szablonu
klasy dla typów, które nie dysponują operacjami wymaganymi przez wszystkie funkcje
składowe szablonu pod warunkiem, e wywoływane są tylko te funkcje, dla których do-
stępne są odpowiednie operacje. Przykładem mo e być szablon klasy, którego niektóre
funkcje składowe u ywają operatora porównania (). Dopóty, dopóki funkcje te nie są
wywoływane, szablon mo e być wykorzystywany dla typu, który nie posiada zdefinio-
wanego operatora .
W naszym przykładzie kod został wygenerowany na podstawie szablonu dla dwóch
klas, KPV oraz UVFUVTKPI. Jeśli szablon klasy posiada składowe statyczne, zostaną
utworzone dwa ich zestawy.
Dla ka dego u ytego typu szablon klasy określa typ, który mo e być u ywany w pro-
gramie jak ka dy zwykły typ:
XQKF HQQ
EQPUV %22$QQM5VCEMKPV U RCTCOGVT U LGUV UVQUGO NKED EC MQYKV[EJ
]
%22$QQM5VCEMKPV KUVCEM=? KUVCEM LGUV VCDNKEæ FKGUKúEKW UVQUÎY NKED
EC MQYKV[EJ
_
W praktyce często wykorzystuje się polecenie V[RGFGH, aby łatwiej posługiwać się sza-
blonami klas w programie:
V[RGFGH %22$QQM5VCEMKPV +PV5VCEM
XQKF HQQ
EQPUV +PV5VCEM U RCTCOGVT U LGUV UVQUGO NKED EC MQYKV[EJ
]
+PV5VCEM KUVCEM=? KUVCEM LGUV VCDNKEæ FKGUKúEKW UVQUÎY NKED EC MQYKV[EJ
_
Parametry szablonów mogą być dowolnymi typami. Na przykład wskaźnikami do war-
tości typu HNQCV lub nawet stosami liczb całkowitych:
127. HNQCV2VT5VCEM UVQU YUMC PKMÎY FQ YCTVQ EK V[RW HNQCV
%22$QQM5VCEM%22$QQM5VCEMKPV KPV5VCEM5VCEM UVQU UVQUÎY NKED EC MQYKV[EJ
Istotne jest jedynie, by typy dysponowały odpowiednimi operacjami.
Zauwa my, e dwa następujące po sobie znaki zamykające szablonu muszą być od-
dzielone odstępem. W przeciwnym razie kompilator zinterpretuje je jako operator
i zasygnalizuje błąd składni:
$ ä PKGFQYQNQPG W [EKG QRGTCVQTC
%22$QQM5VCEM%22$QQM5VCEMKPV KPV5VCEM5VCEM
5RGELCNKCELC UCDNQPÎY MNCU
Przez specjalizację szablonów klas rozumiemy ich osobną implementację dla ró nych
typów. Podobnie, jak w przypadku przecią ania szablonów klas (patrz podrozdział 7.2.5),
umo liwia to optymalizację implementacji dla pewnych typów lub uniknięcie niepo ą-
danego zachowania na skutek utworzenia instancji szablonu dla pewnego typu. Tworząc
specjalizację szablonu klasy musimy pamiętać o utworzeniu specjalizacji wszystkich
jego funkcji składowych. Mo liwe jest stworzenie specjalizacji pojedynczej funkcji
składowej, ale uniemo liwia ono stworzenie specjalizacji całej klasy.
Jawna specjalizacja wymaga dodania słowa VGORNCVG przed deklaracją klasy oraz ty-
pu szablonu po nazwie klasy:
VGORNCVG
ENCUU 5VCEMUVFUVTKPI ]
_
Definicja ka dej funkcji składowej musi rozpoczynać się słowem VGORNCVG , a typ 6
musi zostać zastąpiony określonym typem szablonu:
VGORNCVG
XQKF 5VCEMUVFUVTKPI RWUJ
EQPUV UVFUVTKPI GNGO
]
GNGOURWUJADCEM
GNGO WOKGUEC MQRKú PC UVQUKG
_
A oto kompletny przykład specjalizacji szablonu klasy 5VCEM dla typu UVFUVTKPI:
VORNUVCEMJRR
KPENWFG FGSWG
KPENWFG UVTKPI
KPENWFG UVFGZEGRV
200. Specjalizacja szablonu dla łańcuchów zastąpiła u ywany wewnętrznie wektor kolejką.
Nie jest to jakaś przełomowa zmiana, ale ilustruje ona mo liwość zupełnie innej imple-
mentacji szablonu klasy dla określonego typu.
Zakresy wartości numerycznych zdefiniowane w bibliotece standardowej stanowią ko-
lejny przykład zastosowania specjalizacji szablonów (patrz podrozdział 9.1.4).
%ú EKQYC URGELCNKCELC
Mo liwe jest te tworzenie częściowych specjalizacji szablonów. Na przykład dla sza-
blonu klasy:
VGORNCVG V[RGPCOG 6 V[RGPCOG 6
ENCUU /[%NCUU ]
_
mo emy utworzyć następującą specjalizację częściową:
URGELCNKCELC Eú EKQYC VCMKG UCOG RCTCOGVT[ V[RW
VGORNCVG V[RGPCOG 6
ENCUU /[%NCUU66 ]
_
207. Jeśli do deklaracji pasuje kilka specjalizacji częściowych, nie jest ona jednoznaczna:
/[%NCUUKPVKPV O $ ä RCUWLæ /[%NCUU66
K /[%NCUU6KPV
/[%NCUUKPV
211. Druga z powy szych deklaracji mo e zostać rozstrzygnięta, jeśli zdefiniowana zostanie
specjalizacja dla wskaźników tego samego typu:
VGORNCVG V[RGPCOG 6
ENCUU /[%NCUU6
213. ]
_
QO[ NPG RCTCOGVT[ UCDNQPW
W przypadku szablonów klas mo emy zdefiniować domyślne wartości parametrów (nie
jest to mo liwe dla szablonów funkcji). Domyślne wartości parametrów szablonu mogą
odnosić się do pozostałych jego parametrów.
Na przykład mo emy sparametryzować kontener u ywany do zarządzania elementami
stosu i zdefiniować wektor jako domyślny typ kontenera:
VORNUVCEMJRR
KPENWFG XGEVQT
KPENWFG UVFGZEGRV
286. Tak zdefiniowanego stosu mo emy u ywać w ten sam sposób, co poprzednich wersji
szablonu, ale z dodatkową mo liwością określenia innego typu kontenera elementów:
VORNUVGUVERR
KPENWFG KQUVTGCO
KPENWFG FGSWG
KPENWFG EUVFNKD
KPENWFG UVCEMJRR
KPV OCKP
]
VT[ ]
UVQU NKED EC MQYKV[EJ
%22$QQM5VCEMKPV KPV5VCEM
UVQU NKED OKGPPQRTGEKPMQY[EJ
%22$QQM5VCEMFQWDNGUVFFGSWGFQWDNG FDN5VCEM
QRGTCELG PC UVQUKG NKED EC MQYKV[EJ
288. OUI ]
UVFEGTT 9[LæVGM OUI UVFGPFN
TGVWTP ':+6A(#+.74'
_
_
Za pomocą deklaracji:
%22$QQM5VCEMFQWDNGUVFFGSWGFQWDNG
utworzony został stos wartości zmiennoprzecinkowych, wykorzystujący kolejkę jako
wewnętrzny kontener elementów.
2QFUWOQYCPKG
Za pomocą szablonów klasy mogą być implementowane dla typów, które nie
zostały jeszcze zdefiniowane.
Zastosowanie szablonów klas umo liwia parametryzację kontenerów ze względu
na typ ich elementów.
W przypadku u ycia szablonu klasy generowany jest kod tylko dla tych funkcji
składowych, które rzeczywiście są wywoływane.
Implementacja szablonów klas mo e być wyspecjalizowana dla pewnych typów.
Mo liwa jest tak e częściowa specjalizacja szablonu klasy.
Parametry szablonów klas mogą posiadać wartości domyślne.
+PPG RCTCOGVT[ UCDNQPÎY
Parametry szablonów nie muszą być typami. Mogą być elementarnymi wartościami,
podobnie jak parametry funkcji. W ten sposób mo emy zdefiniować grupę funkcji lub
klas sparametryzowaną względem pewnych wartości.
2T[M CF CUVQUQYCPKC KPP[EJ RCTCOGVTÎY UCDNQPÎY
W poni szym przykładzie zdefiniujemy kolejną wersję szablonu stosu, która będzie za-
rządzać elementami stosu za pomocą zwykłej tablicy o stałym rozmiarze. Unikniemy
w ten sposób kosztów związanych z dynamicznym zarządzaniem pamięcią.
289. Rozdział 7. Szablony 413
Deklaracja tej wersji szablonu przedstawia się następująco:
VORNUVCEMJRR
KPENWFG UVFGZEGRV
362. 414 C++. Programowanie zorientowane obiektowo. Vademecum profesjonalisty
Drugi z parametrów szablonu stosu, /#:5+', określa rozmiar stosu. U ywany jest nie
tylko w celu zadeklarowania odpowiedniej wielkości tablicy, ale tak e przez funkcję
RWUJ
w celu sprawdzenia, czy stos jest pełen.
Korzystając z tej wersji szablonu stosu musimy wyspecyfikować typ elementów stosu
oraz jego wielkość:
VORNUVGUVERR
KPENWFG KQUVTGCO
KPENWFG UVTKPI
KPENWFG EUVFNKD
KPENWFG UVCEMJRR
KPV OCKP
]
VT[ ]
%22$QQM5VCEMKPV KPV5VCEM UVQU YCTVQ EK EC MQYKV[EJ
%22$QQM5VCEMKPV KPV5VCEM UVQU YCTVQ EK EC MQYKV[EJ
%22$QQM5VCEMUVFUVTKPI UVTKPI5VCEM UVQU C EWEJÎY
QRGTCELG PC UVQUKG NKED EC MQYKV[EJ
KPV5VCEMRWUJ
UVFEQWV KPV5VCEMVQR
UVFGPFN
KPV5VCEMRQR
QRGTCELG PC UVQUKG C EWEJÎY
UVFUVTKPI U JGNNQ
UVTKPI5VCEMRWUJ
U
UVFEQWV UVTKPI5VCEMVQR
UVFGPFN
UVTKPI5VCEMRQR
UVFEQWV UVTKPI5VCEMVQR
UVFGPFN
UVTKPI5VCEMRQR
_
ECVEJ
EQPUV EJCT
363. OUI ]
UVFEGTT 9[LæVGM OUI UVFGPFN
TGVWTP ':+6A(#+.74'
_
_
Warto zauwa yć, e w powy szym przykładzie stosy KPV5VCEM i KPV5VCEM posiadają
ró ne typy i nie mogą być przypisywane bądź u ywane jeden zamiast drugiego.
Parametry szablonu mogą posiadać wartości domyślne:
VGORNCVG V[RGPCOG 6 KPV KPV /#:5+'
ENCUU 5VCEM ]
_
Powy szy przykład nie jest zbyt u yteczny, Domyślne wartości powinny być zgodne
z intuicyjnym oczekiwaniem u ytkownika. Ani typ KPV, ani wielkość stosu równa 100
nie są intuicyjne. W takim przypadku lepiej pozostawić specyfikacje wartości parame-
trów programiście aplikacji.
364. Rozdział 7. Szablony 415
1ITCPKEGPKC RCTCOGVTÎY UCDNQPÎY
Z u yciem innych parametrów szablonów związane są pewne ograniczenia. Parametry
szablonów mogą być, oprócz typów, stałymi wyra eniami całkowitymi, adresami obiek-
tów lub funkcji, które są globalnie dostępne w programie.
Liczby zmiennoprzecinkowe i obiekty, których typem są klasy, nie mogą być parame-
trami szablonów klas:
VGORNCVG FQWDNG 8#6 $ ä YCTVQ EK OKGPPQRTGEKPMQYG
FQWDNG RTQEGUU
FQWDNG X PKG Uæ FQYQNQPG LCMQ RCTCOGVT[ UCDNQPÎY
]
TGVWTP X
365. 8#6
_
VGORNCVG UVFUVTKPI PCOG $ ä QDKGMV[ MNCU
ENCUU /[%NCUU ] PKG Uæ FQYQNQPG LCMQ RCTCOGVT[ UCDNQPÎY
_
Literały znakowe w roli parametrów szablonów równie mogą być przyczyną proble-
mów:
VGORNCVG V[RGPCOG 6 EQPUV EJCT
366. PCOG
ENCUU /[%NCUU ]
_
/[%NCUUKPV JGNNQ Z $ ä NKVGTC JGNNQ PKG LGUV FQYQNQP[
Literały znakowe nie są bowiem globalnymi obiektami dostępnymi w dowolnym punk-
cie programu. Jeśli literał JGNNQ zostanie zdefiniowany w dwóch ró nych modułach,
to powstaną dwa ró ne łańcuchy.
W takiej sytuacji nie pomo e nawet u ycie globalnego wskaźnika:
VGORNCVG V[RGPCOG 6 EQPUV EJCT
368. U JGNNQ
/[%NCUUKPVU Z $ ä JGNNQ LGUV CYUG UVCV[EPG
Chocia wskaźnik U jest globalnie dostępny, to wskazywany przez niego łańcuch nadal
nie jest globalnie dostępny.
Rozwiązanie tego problemu jest następujące:
VGORNCVG V[RGPCOG 6 EQPUV EJCT
370. 416 C++. Programowanie zorientowane obiektowo. Vademecum profesjonalisty
XQKF HQQ
]
/[%NCUUKPVU Z RQRTCYPG
_
Globalna tablica U została zainicjowana łańcuchem JGNNQ i dlatego U reprezentuje
globalnie dostępny łańcuch JGNNQ .
2QFUWOQYCPKG
Szablony mogą posiadać parametry, które nie są typami.
Parametry te nie mogą być wartościami zmiennoprzecinkowymi lub obiektami.
Nie mogą być te lokalne.
Zastosowanie literałów znakowych jako parametrów szablonów mo liwe jest
w ograniczonym zakresie.
+PPG CICFPKGPKC YKæCPG UCDNQPCOK
W podrozdziale tym przedstawione zostaną inne aspekty szablonów, które wymagają
omówienia. Przedstawione zostanie zastosowanie słowa kluczowego V[RGPCOG oraz mo -
liwość definiowania składowych jako szablonów. Następnie przyjrzymy się sposobom
implementacji polimorfizmu za pomocą szablonów.
5 QYQ MNWEQYG V[RGPCOG
Słowo kluczowe V[RGPCOG zostało wprowadzone podczas standaryzacji języka C++, aby
umo liwić określenie, e dany symbol jest typem szablonu klasy. Demonstruje to po-
ni szy przykład:
VGORNCVG V[RGPCOG 6
ENCUU /[%NCUU ]
V[RGPCOG 65WD6[RG
371. RVT
_
W powy szym przypadku słowo kluczowe V[RGPCOG zostało zastosowane w celu okre-
ślenia, e 5WD6[RG jest typem zdefiniowanym w klasie 6. W ten sposób RVT został zade-
klarowany jako wskaźnik do typu 5WD6[RG.
Gdyby pominąć słowo kluczowe V[RGPCOG, kompilator przyjąłby, e symbol 5WD6[RG re-
prezentuje statyczną wartość (zmienną lub obiekt) klasy 6. Wtedy wyra enie:
65WD6[RG
372. RVT
zostałoby zinterpretowane jako operacja mno enia tej wartości przez wartość RVT.
Typowym przykładem zastosowania słowa kluczowego V[RGPCOG jest szablon funkcji,
która u ywa iteratorów w celu dostępu do elementów kontenera STL (patrz podrozdział
3.5.4):