如何系统地学习 C++ 语言?

不了解C 的人先认识一下C (系统软件学习资料附后)。Effective C 3e 条款1:视C 为一个语言联邦政府

为了更好地了解C ,你需要了解其关键的次语言。幸运的是一共仅有四个:

C。归根结底C 仍是以C为基本。区块链(blocks)、句子(statements)、预CPU(preprocessor)、内嵌基本数据类型(built-in data types)、二维数组(arrays)、表针(pointers)等通通来源于C。很多情况下C 对问题的解法实际上只不过便是高级的C解法(例如条款2谈到预CPU以外的另一挑选,条款13谈到以目标资源管理),但如果你以C 内的C成份工作中时,高效率程序编写守则映衬出C语言的局限性:沒有模板(templates),没有出现异常(exceptions),沒有轻载(overloading)…… Object-Oriented C 。这一部分也就是C with Classes所需求的:classes(包含构造方法和析构函数),封装形式(encapsulation)、承继(inheritance)、多态性(polymorphi ** )、virtual函数公式(动态性关联)……这些。这一部分是面向对象设计之古典风格守则在C 上的最立即执行。Template C 。这也是C 的泛型编程(generic programming)一部分,也是大部分程序猿工作经验至少的一部分。Template有关考虑到与设计方案早已蔓延全部C ,优良程序编写守则中"惟template适用"的独特条款并不少见(例如条款46 谈到启用template functions时怎样帮助数据转换)。事实上因为templates杀伤力强劲,他们产生全新的程序编写范型(programming paradigm),也就是所说的template metaprogramming(TMP,模板元编程)。条款48对于此事给予了一份简述,但否则你是template激进派精英团队的中坚技术骨干,没有必要太担忧这种。TMP有关标准非常少与C 流行程序编写相互之间危害。 STL。STL是个template程序库,看名字也了解,但它是十分独特的一个。它对器皿(containers)、迭代器(iterators)、优化算法(algorithms)及其函数公式目标(function objects)的通信规约有绝佳的相互配合与融洽,殊不知templates及程序库还可以别的念头建置出去。STL有自身独特的做事方法,如果你合谋STL一起工作中,你务必遵循它的通信规约。- 要系统学习C ,当然离不开学习材料。。。

系统学习之

C Primer 第五版 (豆瓣网) Stanley B.Lipp ** n并不看的书:The C Programming Language(初学者不一定参悟),Essential C (lipp ** n的新手入门小书,不足系统软件)

标准应用之

Effective C 第三版 (豆瓣网) MeyersEffective STL (豆瓣) Meyers并不看的书(解读都比不上Effective系列产品细腻,而且和以上两本书有相当可观的反复内容):C Coding Standards(中译音:C 程序编写标准 ),Exceptional C (系列产品)

归类学习培训之

1. C 规范程序库:自学实例教程与参照 (db) Nicolai M. Josutti STL应用必读!(先学好如何使用,对比Effective STL)2. STL源代码分析 (豆瓣网) (看一下器皿、迭代器、优化算法、函数公式目标乃至调节器的完成方法)3. 超过C 标准库:Boost库专业导论 (豆瓣网) (Boost有相对完善的doc。并不看的书:《Boost程序库完全开发指南》有点儿唠叨)The Boost C Libraries 第二版(Sept. 2014)这本书也特别好用,附加解读,合适新手入门!第二版根据 Boost 1.55.0 和 1.56.0 。第一版的翻译中文:Highscore - Boost C 库Boost.Asio C Network Programming(一本非常好的互联网编程学习小书)4. SGI STL Programmer's Guide (STL得话可以参照SGI的程序编写手册)后面:Effective Modern C (豆瓣网) Meyers大作!新的C 特点,必读啊!More Effective C (豆瓣网) Meyers (这本书沒有再版 里边一部分內容在Effective C 第三版中有谈及,因此可以放进后面里再看)C Templates (豆瓣网)C 设计方案新思路 (豆瓣网) Andrei Alexandrescu- 要系统学习C ,离不开写代码(呵呵呵)阅读文章书籍,查询文本文档,实践活动新项目这种全是学习培训的通用性方式,每个人搞清楚。要练习的是让自身更加高效率的把握这一I/O持续优化的全过程。系统软件把握一门语言,实际上也挺难的,有侧重点的把握作用预制构件,由浅入深,一一击败或许更加适当。不去看书不要看材料肯定是不好,你终究要学习培训的是C 啊,不太可能依照其他语言习惯性去写,不太可能只限于完成作用,尤其是C 还带来了这么多精彩纷呈的新手入门与深层次的学习材料。最终,有兴趣的可以搜索这篇文章:“典型性的C 程序猿成长历程 ”

Copyright © All Rights Reserved

扫码免费用

源码支持二开

申请免费使用

在线咨询