Pertanyaan ini mencoba untuk mengumpulkan beberapa mutiara di antara puluhan buruk C++ buku-buku yang diterbitkan setiap tahun.
Tidak seperti banyak bahasa pemrograman yang lain, yang sering mengambil di mana saja dari tutorial yang ditemukan di Internet, hanya sedikit yang mampu dengan cepat mengambil C++ tanpa belajar yang ditulis dengan C++ buku. Itu adalah cara yang terlalu besar dan kompleks untuk melakukan hal ini. Pada kenyataannya, itu adalah begitu besar dan kompleks, yang ada sangat banyak sangat buruk C++ buku di luar sana. Dan kita tidak berbicara tentang gaya yang buruk, tapi hal-hal seperti olahraga glaringly jelas faktual errors dan promoting tak karuan buruk pemrograman styles.
Silahkan edit jawaban yang diterima untuk memberikan buku-buku berkualitas dan perkiraan tingkat keterampilan — preferably setelah discussing selain di C++ chat room. (Tetap mungkin tanpa ampun membatalkan pekerjaan anda jika mereka tidak setuju dengan rekomendasi.) Tambahkan sebuah uraian singkat/deskripsi tentang masing-masing buku yang telah anda baca pribadi/memperoleh manfaat dari. Merasa bebas untuk debat kualitas, judul, dll. Buku-buku yang memenuhi kriteria yang akan ditambahkan ke daftar. Buku-buku yang memiliki ulasan oleh Asosiasi C dan C++ Pengguna (ACCU) memiliki link ke review.
*Catatan: tanya jawab dan sumber daya lainnya dapat ditemukan di C++ tag info dan di bawah [tag:c++-faq].
A Tur C++ (Bjarne Stroustrup) (2nd edition untuk C++17) "tour" lebih cepat (sekitar 180 halaman dan 14 bab) tutorial gambaran dari semua standar C++ (bahasa dan perpustakaan standar, dan menggunakan C++11) pada tingkat yang cukup tinggi untuk orang-orang yang sudah tahu C++ atau setidaknya adalah programmer yang berpengalaman. Buku ini adalah versi diperpanjang dari bahan yang merupakan Bab 2-5 dari Bahasa Pemrograman C++, edisi ke-4.
Accelerated C++ (Andrew Koenig dan Barbara Moo, 1st Edition - 24 agustus 2000) Ini pada dasarnya meliputi tanah yang sama sebagai C++ Primer, tapi tidak begitu pada keempat dari ruang tersebut. Ini adalah sebagian besar karena tidak berusaha untuk menjadi pengantar pemrograman, tapi sebuah pengantar C++ untuk orang-orang yang'telah diprogram sebelumnya dalam beberapa bahasa lain. Ini memiliki kurva belajar yang curam, namun, untuk orang-orang yang dapat mengatasi hal ini, itu adalah sangat kompak pengantar bahasa. (Secara historis, ini terobosan baru dengan menjadi yang pertama pemula's buku menggunakan pendekatan modern untuk pengajaran bahasa.) Meskipun demikian, C++ ini mengajarkan adalah murni C++98. [Review]
Effective C++ (Scott Meyers, 3rd Edition - 22 Mei 2005) Ini ditulis dengan tujuan untuk menjadi yang terbaik kedua buku C++ programmer harus baca, dan itu berhasil. Edisi-edisi sebelumnya yang ditujukan untuk programmer yang berasal dari C, edisi ketiga perubahan ini dan target programmer berasal dari bahasa Jawa. Hal ini menyajikan ~50 mudah-ke-ingat aturan ibu jari bersama dengan alasan mereka dalam sangat mudah (dan menyenangkan) gaya. Untuk C++11 dan C++14 contoh dan beberapa isu-isu yang sudah usang dan Modern yang Efektif C++ harus diutamakan. [Review]
Effective Modern C++ (Scott Meyers) Ini pada dasarnya adalah versi baru dari Effective C++, yang bertujuan untuk C++ programmer membuat transisi dari C++03 untuk C++11 dan C++14.
More Efektif C++ (Scott Meyers) Bahkan lebih dari aturan-aturan ibu jari dari Effective C++. Tidak penting seperti yang di buku pertama, tapi masih baik untuk tahu.
Exceptional C++ (Herbal Medicine) yang Disajikan sebagai satu set teka-teki, hal ini salah satu yang terbaik dan diskusi yang menyeluruh dari sumber daya yang tepat dan manajemen pengecualian keselamatan dalam C++ melalui Sumber daya Akuisisi adalah Inisialisasi (RAII) selain itu untuk liputan mendalam dari berbagai topik lain termasuk pimpl idiom, pencarian nama, kelas yang baik desain, dan C++ model memori. [Review]
More Dengan C++ (Herbal Medicine) Meliputi tambahan pengecualian topik keselamatan tidak tercakup dalam Exceptional C++, selain diskusi yang efektif pemrograman berorientasi objek dalam C++ dan penggunaan yang benar dari STL. [Review]
Exceptional C++ Style (Herbal Medicine) Membahas pemrograman generik, optimasi, dan pengelolaan sumber daya; buku ini juga memiliki sebuah eksposisi yang sangat baik tentang bagaimana untuk menulis kode modular dalam C++ dengan menggunakan non-anggota fungsi dan tanggung jawab tunggal prinsip. [Review]
C++ Coding Standards (Ramuan Sutter dan Andrei Alexandrescu) "standar Coding" di sini doesn't berarti "berapa banyak ruang yang harus saya indent kode saya?" Buku ini berisi 101 praktek-praktek terbaik, idiom, dan perangkap umum yang dapat membantu anda untuk menulis yang benar, dapat dimengerti, dan efisien C++ code. [Review]
C++ Template: Lengkap Guide (David Vandevoorde dan Nicolai M. Josuttis) Ini adalah the buku tentang template karena mereka ada sebelum C++11. Ini mencakup segala sesuatu dari dasar-dasar untuk beberapa yang paling canggih template metaprogramming dan menjelaskan setiap detail dari bagaimana kerangka kerja (baik secara konseptual dan bagaimana mereka diimplementasikan) dan membahas banyak perangkap umum. Memiliki ringkasan dari salah Satu Definisi Aturan (ODR) dan overload resolusi dalam lampiran. A second edition meliputi C++11, C++14 dan C++17 telah diterbitkan. [Review]
Modern C++ Design (Andrei Alexandrescu) buku terobosan pada lanjutan generik teknik pemrograman. Memperkenalkan kebijakan berbasis desain, jenis daftar, dan dasar pemrograman generik idiom kemudian menjelaskan berapa banyak berguna pola desain (termasuk benda kecil penyalur, functors, pabrik, hotel, dan multi-metode) dapat dilaksanakan secara efisien, modular, dan bersih dengan menggunakan generic programming. [Review]
C++ Template Metaprogramming (David Abrahams dan Aleksey Gurtovoy)
C++ Concurrency Di Action (Anthony Williams) buku meliputi C++11 concurrency dukungan termasuk benang perpustakaan, atomics perpustakaan, C++ model memori, kunci dan mutexes, serta isu-isu designing dan debugging aplikasi multithreaded. A second edition yang meliputi C++14 dan C++17 telah diterbitkan.
The Pemrograman C++ Language (Bjarne Stroustrup) (diperbarui untuk C++11) klasik pengenalan C++ oleh penciptanya. Ditulis sejajar klasik K&R, ini memang membaca sangat banyak seperti itu dan hanya mencakup tentang segala sesuatu dari inti bahasa standar perpustakaan, pemrograman paradigma bahasa's filsafat. [Review] Catatan: Semua output dalam C++ standar dilacak dalam pertanyaan ini: [di Mana saya menemukan saat ini standar C++] (https://stackoverflow.com/a/4653479/14065).
C++ Standar Library Tutorial dan Reference (Nicolai Josuttis) (diperbarui untuk C++11) The pengenalan dan referensi untuk C++ Standar Library. Edisi kedua (dirilis pada April 9, 2012) meliputi C++11. [Review]
The C++ IO Sungai dan Locales (Angelika Langer dan Klaus Kreft) Ada's sangat sedikit untuk mengatakan tentang buku ini kecuali itu, jika anda ingin tahu apa-apa tentang aliran-aliran dan terkenal, maka ini adalah salah satu tempat untuk menemukan jawaban yang pasti. [Review] C++11/14/17/... Referensi:
The C++11/14/17 Standar (INCITS/ISO/IEC 14882:2011/2014/2017) Ini, tentu saja, adalah penentu akhir dari semua itu adalah atau isn't C++. Diketahui, bagaimanapun, bahwa hal ini dimaksudkan semata-mata sebagai referensi untuk berpengalaman pengguna bersedia untuk mencurahkan waktu dan usaha untuk memahami. C++17 standar ini dirilis dalam bentuk elektronik untuk 198 Franc Swiss.
C++17 standar tersedia, tetapi tampaknya tidak dalam bentuk ekonomis – langsung dari ISO biaya 198 Franc Swiss (sekitar $200 US). Bagi kebanyakan orang, draft akhir sebelum standardisasi lebih dari cukup (dan gratis). Banyak orang akan lebih memilih bahkan baru draft, mendokumentasikan fitur-fitur baru yang kemungkinan akan dimasukkan dalam C++20.
Overview Baru C++ (C++11/14) (hanya dalam bentuk PDF) (Scott Meyers) (diperbarui untuk C++14) Ini adalah materi presentasi (slide dan beberapa catatan kuliah) dari pelatihan tiga hari yang ditawarkan oleh Scott Meyers, yang's yang sangat dihormati penulis pada C++. Meskipun daftar barang-barang yang lebih pendek, kualitas tinggi.
The C++ Pedoman Inti (C++11/14/17/...) (diedit oleh Bjarne Stroustrup dan Ramuan Sutter) adalah berkembang dokumen online yang terdiri dari seperangkat pedoman untuk menggunakan modern C++ dengan baik. Pedoman ini difokuskan pada relatif lebih tinggi-tingkat masalah, seperti interface, manajemen sumber daya, manajemen memori dan concurrency yang mempengaruhi arsitektur aplikasi perpustakaan dan desain. Proyek itu diumumkan pada CppCon'15 oleh Bjarne Stroustrup dan lain-lain dan menyambut kontribusi dari masyarakat. Sebagian besar pedoman yang dilengkapi dengan alasan dan contoh-contoh serta pembahasan dari alat yang mungkin dukungan. Banyak aturan yang dirancang secara khusus untuk dapat secara otomatis checkable oleh statis alat analisis.
The C++ Super-FAQ (Marshall Cline, Bjarne Stroustrup dan lain-lain) adalah upaya oleh Standar C++ Dasar untuk menyatukan C++ tanya jawab sebelumnya yang dikelola secara individual oleh Marshall Cline dan Bjarne Stroustrup dan juga menggabungkan kontribusi baru. Barang-barang yang sebagian besar membahas isu-isu di tingkat menengah dan sering ditulis dengan nada lucu. Tidak semua barang dapat sepenuhnya up to date dengan edisi terbaru dari C++ standar belum.
Catatan: Beberapa informasi yang terkandung dalam buku-buku ini mungkin tidak up-to-date atau tidak lagi dianggap sebagai praktek terbaik.
The Desain dan Evolusi C++ (Bjarne Stroustrup) Jika anda ingin tahu why bahasa adalah cara itu, buku ini adalah di mana anda menemukan jawaban. Ini mencakup segala sesuatu before yang standardization dari C++.
Ruminations pada C++ - (Andrew Koenig dan Barbara Moo) [Review]
lanjut Pemrograman C++ Gaya dan Idioms (James Coplien) pendahulu dari pola gerakan, itu menjelaskan banyak C++-spesifik "idiom". It's tentu buku yang sangat bagus dan mungkin masih layak dibaca jika anda bisa meluangkan waktu, tetapi cukup lama dan tidak up-to-date dengan saat ini C++.
Large Skala C++ Software Design (John Lakos) Lakos menjelaskan teknik-teknik untuk mengelola sangat besar C++ proyek-proyek perangkat lunak. Tentu saja, membaca yang baik, jika hanya itu yang up to date. Itu ditulis jauh sebelum C++ 98 dan merindukan banyak fitur (misalnya namespaces) penting untuk proyek-proyek skala besar. Jika anda perlu untuk bekerja di big C++ proyek perangkat lunak, anda mungkin ingin untuk membacanya, meskipun anda perlu untuk mengambil lebih dari sebutir garam dengan itu. Volume pertama dari edisi baru adalah yang diharapkan pada tahun 2019.
Inside C++ Objek Model (Stanley Lippman) Jika anda ingin tahu bagaimana virtual fungsi anggota yang biasa dilaksanakan dan bagaimana dasar benda-benda yang biasa diletakkan di memori dalam multi-warisan skenario, dan bagaimana semua ini mempengaruhi kinerja, ini adalah di mana anda akan menemukan diskusi yang menyeluruh dari topik tersebut.
The Dijelaskan Referensi C++ Manual (Bjarne Stroustrup, Margaret A. Ellis) buku Ini cukup usang dalam kenyataan bahwa ia mengeksplorasi 1989 C++ versi 2.0 - Template, pengecualian, namespaces dan baru gips yang belum diperkenalkan. Mengatakan bahwa bagaimanapun, buku ini berjalan melalui seluruh C++ standar waktu menjelaskan alasan, mungkin implementasi, dan fitur bahasa. Ini bukan buku untuk belajar pemrograman prinsip-prinsip dan pola pada C++, tetapi untuk memahami setiap aspek dari bahasa C++.
Thinking dalam C++ (Bruce Eckel, 2nd Edition, 2000). Dua volume; tutorial gaya gratis set intro buku tingkat. Download: vol 1, vol 2. Sayangnya mereka’kembali dirusak oleh sejumlah sepele kesalahan (misalnya mempertahankan bahwa sangat sementara secara otomatis const
), dengan tidak resmi ralat daftar. Parsial 3rd pihak ralat daftar tersedia di (http://www.computersciencelab.com/Eckel.htm), tetapi’s rupanya tidak dipertahankan.
Scientific dan Rekayasa C++: Pengenalan teknik-Teknik Canggih dan Examples (John Barton dan Lee Nackman) Ini adalah komprehensif dan sangat rinci buku yang mencoba untuk menjelaskan dan menggunakan semua fitur yang tersedia dalam C++, dalam konteks metode numerik. Itu diperkenalkan pada waktu beberapa teknik-teknik baru, seperti yang Anehnya Berulang Template Pola (CRTP, juga disebut Barton-Nackman trik). Itu dirintis beberapa teknik seperti analisis dimensi dan diferensiasi otomatis. Itu datang dengan banyak compilable dan kode yang berguna, mulai dari ekspresi parser untuk Lapack wrapper. Kode yang masih tersedia di sini: http://www.informit.com/store/scientific-and-engineering-c-plus-plus-an-introduction-9780201533934. Sayangnya, buku-buku yang telah menjadi agak usang dalam gaya dan C++ memiliki, namun, itu luar biasa tour-de-force pada waktu itu (tahun 1994, pra-STL). Bab-bab tentang dinamika warisan yang sedikit rumit untuk memahami dan sangat tidak berguna. Versi terbaru ini buku klasik yang mencakup bergerak semantik dan pelajaran dari STL akan sangat bagus.