C++
C++ jest językiem ogólnego przeznaczenia, który po to został wymyślony, aby
ułatwić pracę poważnym :) programistom.
C++ jest roszerzeniem języka C (jest jego nadzbiorem).
Oznacza to, że dobrze napisany program C w większości sytuacji powinien dać się
skompilować także jako program C++. Źródłem najczęściej występujących w takich
sytuacjach problemów jest zdecydowanie bardziej restrykcyjna kontrola typów, z
jaką mamy doczynienia w języku C++.
Pomimo podobieństw nie daj się zwieźć iluzji, że C++ to "tylko ulepszone C".
C++ jest dużo bogatszym językiem, który wprowadził wiele wspaniałych
mechanizmów. Pojawiły się nowe możliwości takie jak: programowanie obiektowe,
programowanie z użyciem szablonów, przestrzenie nazw, funkcje inline,
przeciążenie funkcji i operatorów, lepsze możliwości zarządzania pamięcią,
referencje, bezpieczny casting, obsługa wyjątków i rozszerzone
biblioteki standardowe.
Zagadnienia, którymi chciałbym się zająć, to:
Przedstawiam także listę książek które posiadam, a które mogą być bardzo pomocne w znalezieniu informacji,
których nie można znaleźć na tej stronie.
Polecana literatura:
Książki dotyczące programowania w C++ (ale nie tylko):
- Randall Hyde - Thinking Low-level, Writing High-level (Write Great Code Vol. 2),
- Randall Hyde - Understanding The Machine (Write Great Code Vol. 1),
- Achim Koehler - Der C/C++ Projektbegleiter,
- Björn Karlson - Beyond the C++ Standard Library, An Introduction to Boost,
-
- Pete Becker - C++ Standard Library Extensions. A Tutorial ans Reference,
- Doina Logofatu - Algorithmen und Problemlösungen mit C++
Von der Diskreten Mathematik zum fertigen Program.
Lern- und Arbeitsbuch für Informatiker und Mathematiker.
- Steve McConnel - Code Complete, Second Edition.
(Code Complete - Deutsche Ausgabe der Second Edition.)
- Jürgen Wolf - C++ von A bis Z.
- David Abrahams, Aleksey Gurtovoy - C++ Template Metaprogramming, Concepts...
(Język C++ Metaprogramowanie za pomocą szablonów.)
- Herb Sutter, Andrei Alexandrescu - C++ Coding Standards, 101 Rules, Guidlines, and Best Practices.
- Dov Bulka, David Mayhew - Efficient C++. Performance Programming Techniques.
- Matthew Wilson - Imperfect C++: Practical Solutions for Real-Life Programming.
- Andrei Alexandrescu - Modern C++ Design: Generic Programming and Design Patterns Applied.
(Modernes C++ Design - Generische Programmierung und Entwurfsmuster angewendet.)
- Herb Sutter - Exceptional C++ Style: 40 New Engineering Puzzles, Programing Problems, and Salutions.
(Niezwykły styl języka C++ 40 nowych łamigłówek, zadań programistycznych i rozwiązań.)
- Herb Sutter - Exceptional C++: 47 engineering puzzles, programming problems, and salutions.
(Exceptional C++ 47 technische Denkaufgaben, Programmierprobleme und ihre Lösungen.)
- Bjarne Stroustrup - The C++ Programming Language. Special edition.
(Die C++ Programmiersprache 4. aktualisierte Auflage.)
- Bruce Eckel, Chuck Allison - Thinking in C++ I/II.
- Scott Mayer - Effective C++: 50 Specific Ways to Improve Your Programs and Design
(C++ 50 efektywnych sposobów na udoskonalenie Twoich programów.)
- Robert B. Murray - C++ Strategies and Tactics
- John Lakos - Large-Scale C++ Software Design.
- David Vandevoorde, Nicolai Josuttis - C++ Templates: The Complete Guid.
(C++ Biblioteka standardowa. Podręcznik programisty.)
- E. Gamma, R. Helm, R. Johnson, J. Vlissides - Design Patterns.
(Entwurfsmuster. Elemente wiederverwendbarer objektorientierter Software.)
- Tom Cargill - C++ Programming Style.
- John Viega, Matt Messier - Secure Programming Cookbook for C and C++.
(C i C++ Bezpieczne programowanie. Receptury.)
- Andre Willms - Das C++ Codebook.
- Kyle Loudon - Mastering Algorithms with C.
(Algorytmy w C.)
- Stephens, Diggins, Turkanis & Cogswell - C++ Cookbook.
(C++ Receptury.)
Książki o fundamentalnym znaczeniu dotyczące programowania w systemie UNIX/Linux:
- M.Tim Jones - GNU/Linux Application Programming.
- Jürgen Wolf - Linux-UNIX-Programmierung, Das umfassende Handbuch.
- W. Richard Stevens - Advanced Programming in the UNIX Environment.
- W. Richard Stevens - UNIX Network Programming Vol. 1 - Networking APIs: Sockets and XTI.
(UNIX programowanie usług sieciowych t.1 API: gniazda i XTI.)
- W. Richard Stevens - UNIX Network Programming Vol. 2 - Interprocess Communications.
(UNIX programowanie usług sieciowych t.2 komunikacja międzyprocesowa.)
- Uresh Vahalia - UNIX Internals. The New Frontiers.
(Jądro systemu UNIX nowe horyzonty.)
- Douglas E. Comer, David L. Stevens - Internetworking with TCP/IP, Vol II, III.
- W. Richard Stevens - TCP/IP Illustrated, Vol. I, II, III.
(Biblia TCP/IP t. I, II, III.)
Książki dotyczące co prawda języka C, ale zawierają opisy standardów,
które bardzo często są niezbędne podczas pisania programów C++:
- Donald Lewin - POSIX. Programmer's Guide. Writing Portable UNIX Programs.
- Bill Gallmeister - POSIX.4. Programming for the real world.
- David Butenhof - Programming with POSIX Threads.