1 minute read

一、 介绍

二、 建议

摘自「讨论一下《C++ 编程思想》这本书」1讨论帖子中的一段,个人很喜欢;

  1. 看《Thinking In C++》,不要看《C++变成死相》;
  2. 看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看;
  3. 不要放过任何一个看上去很简单的小编程问题——他们往往并不那么简单,或者可以引伸出很多知识点;
  4. 学class并不难,template、STL、generic programming也不过如此——难的是长期坚持实践和不遗余力的博览群书;
  5. 请阅读《The Standard C++ Bible》(中文版:标准C++宝典),掌握C++标准;
  6. 请看《Effective C++》和《More Effective C++》以及《Exceptional C++》;
  7. 读完了《Inside The C++ Object Model》以后再来认定自己是不是已经学会了C++;
  8. 请留意下列书籍:《C++面向对象高效编程(C++ Effective Object-Oriented Software Construction)》《面向对象软件构造(Object-Oriented Software Construction)》《设计模式(Design Patterns)》《The Art of Computer Programming》;
  9. 请重视C++中的异常处理技术,并将其切实的运用到自己的程序中;
  10. 决不要因为程序“很小”就不遵循某些你不熟练的规则——好习惯是培养出来的,而不是一次记住的;
  11. 每学到一个C++难点的时候,尝试着对别人讲解这个知识点并让他理解——你能讲清楚才说明你真的理解了;

初学 c++ 建议

附录

A 基础

1. 初学 C++ 建议

  1. 把 C++ 当成一门新的语言学习;
  2. 不要被 VC、BCB、BC、MC、TC 等词汇所迷惑——他们都是集成开发环境,而我们要学的是一门语言;
  3. 会用 Visual C++,并不说明你会C++;
  4. 看 Visual C++ 的书,是学不了C++语言的;
  5. 不要因为 C 和 C++ 中有一些语法和关键字看上去相同,就认为它们的意义和作用完全一样;
  6. C++ 语言和 C++ 的集成开发环境要同时学习和掌握;
  7. 当你写 C++ 程序写到一半却发现自己用的方法很拙劣时,请不要马上停手;请尽快将余下的部分粗略的完成以保证这个设计的完整性,然后分析自己的错误并重新设计和编写(参见43);
  8. 别心急,设计 C++ 的 class 确实不容易;自己程序中的 class 和自己的 class 设计水平是在不断的编程实践中完善和发展的;
  9. 请不断的对自己写的程序提出更高的要求,哪怕你的程序版本号会变成 Version 100.XX;
  10. 保存好你写过的所有的程序——那是你最好的积累之一;
  11. 请热爱 C++!

B 推荐书籍

  1. 《Thinking in C++》
    《C++ 编程思想》
    Bruce Eckel, Chuck Allison 著. 刘宗田, et al. 译. C++ 编程思想[M]. 北京:机械工业出版社, 2016.
    翻译生硬,逻辑不清晰,至少模板章节很烂;

  2. 《Using the C++ Standard Template Libraries》
    《C++ 标准模板库编程实战》
    Ivor Horton 著, 郭小虎. 程聪. 译. C++ 标准模板库编程实战[M]. 北京:清华大学出版社, 2017.

  3. 《Effective Modern C++》
    《Effective Modern C++》
    Scott Meyers. Effective Modern C++[M]. 南京:东南大学出版社, 2018.

  4. 《C++ Footprint and Performance Optimization》
    《C++ 高效编程: 内存与性能优化》
    R.Alexande 著, 王峰. 史金虎. 译. C++ 高效编程: 内存与性能优化[M]. 北京:中国电力出版社, 2003.

  5. 《The Boost C++ Libraries》
    《Boost C++ 类库》,官网Blog
    Boris Schäling. The Boost C++ Libraries[M]. XML Press, 2011.
    提供多个库,包括多线程、容器、字符串和文本处理、迭代器、线性代数、伪随机数产生、元程序设计模板、并发程序设计、数据结构、图像处理、正则表达式和单元测试;可以轻松地管理内存、处理字符串;

  6. 《C++ Annotations》
    《C++ 注释》,doclatestBlog
    Frank B. Brokken. C++ Annotations[EB/OL]. -, 2013.
    全面的入门教程;

  7. 《An Introduction to Design Patterns in C++ with Qt》
    《C++ Qt 设计模式》, PDF-1, PDF-2
    Alan Ezust, Paul Ezust 著, 闫锋欣 等译. C++ Qt 设计模式[M]. 北京:电子工业出版社, 2012.
    从 C++ 基础到设计模式;对函数、继承和多态的讲解尤为优秀;

  8. 《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.
    理论到实践的过度(基础);

  9. Open Data Structures (in C++)》
    《开放数据结构(C++ 版)》, HTML, PDF-2017, PDF
    Pat Morin. 开放数据结构(C++ 版)[M]. AU Press, 2013.
    理论到实践的过度(基础);

  10. 《The Rook’s Guide to C++》
    《Rook 的 C++ 指南》, PDF-2013, []
    Jeremy Hansen. The Rook’s Guide to C++[M]. lulu.com, 2013.
    集中处理预处理器、高等代数、文件输入输出、指针、动态数据、类和抽象、分离编译和标准模板库等问题;
    本书大部分都是由 25 位 Norwich 大学的学生于一个黑客马拉松周末写成;

  11. 《An Introduction to GCC》
    《GCC 简介》, HTML, PDF-En, PDF-中文
    Brian Gough. GCC 简介[M]. Network Theory Ltd, 2004.
    介绍了 GNU:gcc、g++,解释了如何单独使用编译器;

C 推荐资料

  1. Optimizing software in C++
  2. Optimization in C & C++
  3. C++ Programming Language
  4. PROGRAMMING WITH C++

D 一些教程

  1. C++ Programming Language-geek
  2. C++ 教程
  3. C++ 教程-runoob

E 参考文献

  1. 我心不死. 讨论一下《C++ 编程思想》这本书[EB/OL]. https://bbs.csdn.net/topics/20147884. -/2019-01-21. 

Comments