「C++」 C++ 概览
一、 介绍
二、 建议
摘自「讨论一下《C++ 编程思想》这本书」1讨论帖子中的一段,个人很喜欢;
- 看《Thinking In C++》,不要看《C++变成死相》;
- 看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看;
- 不要放过任何一个看上去很简单的小编程问题——他们往往并不那么简单,或者可以引伸出很多知识点;
- 学class并不难,template、STL、generic programming也不过如此——难的是长期坚持实践和不遗余力的博览群书;
- 请阅读《The Standard C++ Bible》(中文版:标准C++宝典),掌握C++标准;
- 请看《Effective C++》和《More Effective C++》以及《Exceptional C++》;
- 读完了《Inside The C++ Object Model》以后再来认定自己是不是已经学会了C++;
- 请留意下列书籍:《C++面向对象高效编程(C++ Effective Object-Oriented Software Construction)》《面向对象软件构造(Object-Oriented Software Construction)》《设计模式(Design Patterns)》《The Art of Computer Programming》;
- 请重视C++中的异常处理技术,并将其切实的运用到自己的程序中;
- 决不要因为程序“很小”就不遵循某些你不熟练的规则——好习惯是培养出来的,而不是一次记住的;
- 每学到一个C++难点的时候,尝试着对别人讲解这个知识点并让他理解——你能讲清楚才说明你真的理解了;
附录
A 基础
1. 初学 C++ 建议
- 把 C++ 当成一门新的语言学习;
- 不要被 VC、BCB、BC、MC、TC 等词汇所迷惑——他们都是集成开发环境,而我们要学的是一门语言;
- 会用 Visual C++,并不说明你会C++;
- 看 Visual C++ 的书,是学不了C++语言的;
- 不要因为 C 和 C++ 中有一些语法和关键字看上去相同,就认为它们的意义和作用完全一样;
- C++ 语言和 C++ 的集成开发环境要同时学习和掌握;
- 当你写 C++ 程序写到一半却发现自己用的方法很拙劣时,请不要马上停手;请尽快将余下的部分粗略的完成以保证这个设计的完整性,然后分析自己的错误并重新设计和编写(参见43);
- 别心急,设计 C++ 的 class 确实不容易;自己程序中的 class 和自己的 class 设计水平是在不断的编程实践中完善和发展的;
- 请不断的对自己写的程序提出更高的要求,哪怕你的程序版本号会变成 Version 100.XX;
- 保存好你写过的所有的程序——那是你最好的积累之一;
- 请热爱 C++!
B 推荐书籍
-
《Thinking in C++》
《C++ 编程思想》
Bruce Eckel, Chuck Allison 著. 刘宗田, et al. 译. C++ 编程思想[M]. 北京:机械工业出版社, 2016.
翻译生硬,逻辑不清晰,至少模板章节很烂; -
《Using the C++ Standard Template Libraries》
《C++ 标准模板库编程实战》
Ivor Horton 著, 郭小虎. 程聪. 译. C++ 标准模板库编程实战[M]. 北京:清华大学出版社, 2017.
-
《Effective Modern C++》
《Effective Modern C++》
Scott Meyers. Effective Modern C++[M]. 南京:东南大学出版社, 2018.
-
《C++ Footprint and Performance Optimization》
《C++ 高效编程: 内存与性能优化》
R.Alexande 著, 王峰. 史金虎. 译. C++ 高效编程: 内存与性能优化[M]. 北京:中国电力出版社, 2003.
-
《The Boost C++ Libraries》
《Boost C++ 类库》,官网,库 ,Blog
Boris Schäling. The Boost C++ Libraries[M]. XML Press, 2011.
提供多个库,包括多线程、容器、字符串和文本处理、迭代器、线性代数、伪随机数产生、元程序设计模板、并发程序设计、数据结构、图像处理、正则表达式和单元测试;可以轻松地管理内存、处理字符串; -
《C++ Annotations》
《C++ 注释》,doc ,latest,Blog
Frank B. Brokken. C++ Annotations[EB/OL]. -, 2013.
全面的入门教程; -
《An Introduction to Design Patterns in C++ with Qt》
《C++ Qt 设计模式》, PDF-1, PDF-2
Alan Ezust, Paul Ezust 著, 闫锋欣 等译. C++ Qt 设计模式[M]. 北京:电子工业出版社, 2012.
从 C++ 基础到设计模式;对函数、继承和多态的讲解尤为优秀; -
《How to Think Like a Computer Scientist: C++》
《像计算机科学家一样思考:C++》, PDF-1, PDF-1.1.0, Github
Allen B. Downey. 像计算机科学家一样思考:C++[M]. CreateSpace Independent Publishing Platform, 2012.
理论到实践的过度(基础); -
《Open Data Structures (in C++)》
《开放数据结构(C++ 版)》, HTML, PDF-2017, PDF
Pat Morin. 开放数据结构(C++ 版)[M]. AU Press, 2013.
理论到实践的过度(基础); -
《The Rook’s Guide to C++》
《Rook 的 C++ 指南》, PDF-2013, []
Jeremy Hansen. The Rook’s Guide to C++[M]. lulu.com, 2013.
集中处理预处理器、高等代数、文件输入输出、指针、动态数据、类和抽象、分离编译和标准模板库等问题;
本书大部分都是由 25 位 Norwich 大学的学生于一个黑客马拉松周末写成; -
《An Introduction to GCC》
《GCC 简介》, HTML, PDF-En, PDF-中文
Brian Gough. GCC 简介[M]. Network Theory Ltd, 2004.
介绍了 GNU:gcc、g++,解释了如何单独使用编译器;
C 推荐资料
D 一些教程
- C++ Programming Language-geek
- C++ 教程
- C++ 教程-runoob
E 参考文献
-
我心不死. 讨论一下《C++ 编程思想》这本书[EB/OL]. https://bbs.csdn.net/topics/20147884. -/2019-01-21. ↩
Comments