如何快速的学习C++

 我来答
编程与实战
2021-03-10 · 全网平台统一账号:编程与实战
编程与实战
采纳数:11 获赞数:38

向TA提问 私信TA
展开全部

大一学习的c++,工作之后也一直用的c++。

1. 涵盖c++入门到精通的图书列表

《The C programming language》必读
《C++ Primer》,号称是一本可以让你从C或JAVA程序员转为一个真正的C++程序员的入门参考书,必读。
《The C++ programming language》,C++之父,人称B教主著作,在看过C++ primer后,应该可以跳章选读。
《Think in c++》,网上说此书的中文版翻译质量奇差,推荐看影印版,选读。
《Effective c++》,类似 Effective java,讲的是最佳实践,程序员必读。


《More effective c++》,上书的补充。
《The C++ standard library》,会写C,不会用标准库怎么行。这就跟java程序员不会用java.util包一样,必读。
《Effective STL》,STL库的最佳实践。Effective C++作者又一力作,必读。
《The annotated STL source》,STL源码分析,这本书应该算是深入/精通类了,选读。
《Generic programming and STL》,号称C++编程里,就是跟模板,泛型打交道,那么精通泛型是势在必行。

《C++ Template》,C++模板编程,代码复用的经验之道,必读。

《Exceptional C++》,跟Effective C++类似,属于最佳实践和难题解析,书中列出了许多应用场景和实例代码供读者揣摩,选读。

《More Exceptional C++》,上书的补充。

《Exceptional C++ Style》,上上书的补充

《Inside The C++ Object Model》,有了上面这些书做铺垫,那么终于可以读此神书了。它会带你游览C++对象模型的底层实现机制。读完此书,任何C++代码看起来如同行云流水,必读。

2. 优秀的C/C++开源项目(阅读代码)

OS:Linux kernel LVS、Linux应用程序

DB:Mysql、PostgreSQL

Complier:VM、GCC

Framework:OpenSip、SipProxy、

Net:ACE(Java Mina、Netty)、TCP/IP、HTTP协议栈

Cache:Memcached、Redis、

Library:STL(java util package)、Boost、Qt(UI)、

balance:Apache、Nginx

GSL

地址:https://github.com/microsoft/GSL

Boost文档

地址:https://www.boost.org/doc/libs/

wxWidgets官网

地址:http://wxwidgets.org/

gtkmm

地址:https://www.gtkmm.org/en/

CopperSpice

地址:https://www.copperspice.com/

Qt

地址:https://www.qt.io/Eigen

地址:http://eigen.tuxfamily.org/index.php?title=Main_Page#Documentation

Plot utils

地址:https://www.gnu.org/software/plotutils/

Asio

地址:https://think-async.com/Asio/

POCO

地址:https://pocoproject.org/

abseil

地址:https://abseil.io/

C++开源库汇总列表

地址:https://en.cppreference.com/w/cpp/links/libs

除了这些开源项目,也可以找一些免费的公开课,那这里也推荐一个ACM金牌大佬讲授的免费C++课程,可以去体验一下:

学好C++才是入职大厂的敲门砖! 当年要是有这课,我的C++也不至于这样

已失效 

3.C++语法讲解

  • 语言基础
    详细介绍变量、表达式、语句、指针、数组、流程控制、函数、文件组织等。

  • 抽象机制 - 面向对象编程
    深入讲解C++的抽象机制,封装(类)、继承、多态;操作符重载、函数对象、异常处理等。

  • 模板 - 泛型编程
    详细介绍C++的模板机制,类模板、函数模板、模板特化等方面的内容。

  • 4.深入c++面向对象

    4.1、从C到C++

  • 引用和指针:为什么引用很重要

  • const关键字:为什么const很重要

  • 名字空间 (namespace)

  • 4.2、深入C++对象

  • 关于C++对象
    内置类型的对象,如int、double对象,自定义类型的对象

  • 对象类型的定义
    关键字class和struct
    类成员:成员函数和数据成员
    静态数据成员
    成员的访问控制
    对象的size
    关于this指针
    onst成员函数、const究竟修饰什么
    mutable数据成员
    4种特殊成员函数:constructor、destructor、copy constructor、operator=
    对象的构造、初始化列表
    对象的析构
    对象的复制
    什么情况下有必要显式定义4种特殊函数
    C++对象生命周

  • 4.3、操作符重载

  • 关于C++中操作符重载机制

  • 重要操作符重载
    算术运算:+, -, *, /, %, ++, --, ...
    关系运算:>, <, ==, !=
    下标存取:[ ]
    函数调用:(),函数对象
    类型转换、单参数构造函数与隐式转换、阻止隐式转换 -- explicit关键字

  • 友元与成员

  • 4.4、面向对象基础 -- 继承

  • 基类与派生类

  • 再谈对象的构造与析构

  • 虚函数、纯虚函数

  • 派生类的内存布局、虚函数表

  • 多态、多态类型、如何体现多态

  • 虚析构、为什么虚析构很重要

  • 4.5、关于继承更多的话题

  • 多继承

  • 虚继承与虚基类

  • 对基类的访问、public / protected / private继承

  • Down cast:static_cast<>和dynamic_cast<>

  • 运行期类型识别 (RTTI)

  • 4.6、C++与面向对象设计

  • C++语言机制提供了完整的OOP支持

  • 超越继承

  • OOP若干法则和设计模式

  • 5.C++泛型编程与STL

    5.1、C++ 模板机制

    5.2、STL 概要

    5.3、STL容器
    5.4、STL迭代

    5.5、STL算法

    5.6、预与定义STL数对象

    5.7、STL适配器

    6. C++进阶

  • 《C++ Primer》


  • 最新版本:第三版(第四版国外已上架, 国内一些网上书店也在预订中)


  • 适合有丰富C经验,缺乏C++经验的。不过我个人一直认为此书带着过于强烈的C语言的痕迹,对于C++的学习未必是 好事。


  • 《The C++ Programming Language》/《C++程序设计语言》


  • 最新版本:第三版特别版


  • 简称 TC++PL,有其他语言的丰富经验的。(也有人简称之为“TCPL”,但需与另一本《The C Programmer Language》区分开来)


  • 《Essential C++》


  • 《Accelerated C++》


  • 这两本薄一些,都是不错的选择。《Accelerated C++》本人没有读过,从各方面的评价来看,完全值得推荐。


  • 以上几本书都有相应的中文版,而且翻译的质量都不错。上面的书未必都需要读一遍,但无论如何,TC++PL是应该阅读的。



  • 《Effective C++》


  • 最新版本:第二版(第三版国外已上架,国内一些网上书店也在预订中)


  • 简称EC。C++程序员必读!很多时候,我们说C++圣经不是指TC++PL,而是这一本。《The Pragmatic Programmer》一书中写到:“一旦你发现自己要参与C++项目的开发,赶快跑(不要走)到书店去购买Scott Mayer的《Effective C++》,可能还要《More Effective C++》”。


  • 《C++ Coding Standards: 101 Rules, Guidelines, and Best Practices》/《C++ 编程规范》


  • 个人认为此书应为C++程序员必备的案头书。几乎Effective系列和Exceptional系 列都在这里得到了总结。最新的模版、异常的业界经验都在这里的到了体现。可能的唯一缺陷就是对一个新手而言,关于“为什么这么做”的问题,解释的不够。


  • 我 的看法是:如果你不理解其中的条款,记忆,并且照做;如果你理解其中的条款,我猜你一定会同意书中的观点。我认为这本书中的内容至少在2009年以前都不 会过时,人们将广为传诵它制定的101条戒律。


  • 还不知道他的简称,也许“101”会成为一个候选者?


  • 提到《Effective C++》,那么另外三本书一一浮出水面:


  • 《More Effective C++》


  • 《Exceptional C++》


  • 《More Exceptional C++》。


  • 新书《Exceptional C++ Style》也是值得一看的好书。


  • 上 述几本书,一本也不应该放过。


  • 个人建议上述书籍按顺序阅读。并且,在将来反复阅读这几本书。

  • 《Thinking in C++》/《C++编程思想》
    这本书及其中文版传言好坏都有,没有认真看过,不做评价,如果确有兴趣,不妨尝试 一下该书。

    以下几本书基本上涉及的都是语言本身,大体上可以按照以下的顺序阅读。

    《C++必知必会》
    如果早一年,这本书将是重量级的,然而它被101和《Exceptional C++ Style》盖过一头。

    《C++ Gotchas: Avoiding Common Problems in Coding and Design》/《C++程序设计陷阱》
    这又是一本我未曾读过,而且广受好评的书。

    《STL 源码剖析》
    这本书我刚到手,就被人"借"走,以至于到现在也没有看过。看过这本书的朋友,可以给一个合适的评价。

    7. C++进阶之数据结构基础

    这是所有编程语言中最应该学习的部分,程序组成的基础之一。

    顺序存储、链式存储、循环链表;

    双向链表、栈(顺序和链式)、队列(顺序和链式);

    栈的应用、树基本概念及遍历、二叉树;

    排序算法、并归算法、选择、插入、快速、希尔。

    以上这些内容你知道吗?

    8. C++进阶之UI界面开发

    掌握QT类库构架,图形界面开发模型;

    掌握QT开发技巧,消息机制,图形处理;

    掌握QT网络编程,UDP,TCP使用方式;

    掌握QT文件处理方式,序列化;

    掌握QT在windows,linux,ios,android不同平台下的移植技术。

    9. C++进阶之Unix/Linux网络服务器

    掌握Unix/Linux平台开发方式;

    熟练使用系统调用;

    熟练Unix/Linux内存管理,进程,线程调度;

    熟悉网络服务器开发方式,熟练编写TCP,UCP网络服务程序;

    掌握同步/异步IO模型在网络编程中的使用方式。

    10.C++进阶之数据库开发

    掌握SQL语言的实用技巧。Oracle,MySQL数据库的使用方式。

    如果你能熟练掌握以上列出的技能,具备解决复杂问题和技术难点的能力,而且你能独立开发一些比较复杂的功能模块,那么很荣幸地告诉你,你已经达到中级水平,薪资过万对你来说简直是小菜一碟。

    11.C++标准参考

    C++ reference

    地址:https://en.cppreference.com/w/

    C++ Coding Standard

    地址:http://www.possibility.com/Cpp/CppCodingStandard.html

    Standard C++

    地址:https://isocpp.org/

    State of C++ Evolution

    地址:http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2597.html

    The C++ Resources Network

    地址:http://www.cplusplus.com/

    Draft C++ Standard: Contents

    地址:http://eel.is/c++draft/

roger_6
2017-04-24 · 知道合伙人教育行家
roger_6
知道合伙人教育行家
采纳数:39447 获赞数:405770
回答问题3万多个,采纳率94%。擅长教育历史类问题回答。

向TA提问 私信TA
展开全部
为何要学好C++?
1、C++的程序员身价普遍较高,当然,前提是你必须是高手。
2、C++应用领域a.游戏 C++的效率是一个很重要的原因b.网络软件 C++拥有很多成熟的用于网络通信的库,其中最具有代表性的是跨平 台的、重量级的ACE库,该库可以说是C++语言最重要的成果之一, 在许多重要的企业、部门甚至是军方都有应用。c.分布式应用。d.操作系统 在该领域,C语言是主要使用的编程语言。但是C++凭借其对C的 兼容性,面向对象性质也开始在该领域崭露头角。e.设备驱动程序 也是因为效率的原因。f.移动(手持)设备.h.嵌入式系统.i.教育与科研。
今天我们来看看如何快速学好C++
工具/原料

时间 精力
方法/步骤

浮躁的人容易问:XX和YY哪个好;告诉你吧,都好,只要你学就行。切记;不要太浮躁;一定要静下心来,学业有成一定不是整体问学习捷径的,都是背后不断的付出辛苦的。所以心态一定要放正。

勤奋读书;读好书;在此为大家推荐这些书籍;都是经典,毋庸置疑!

入门教程
学习任何一门语言都需要一个从入门到精通、从新手到高手循序渐进的过程。不过,对于一个所谓的新手而言,究竟是一个完完全全的新手,还是一个熟悉某种别的语言的“新手”,甚至是在某种语言程序设计领域已经颇有建树的高手,很难一概而论?不同的C++新手需要不同的入门书籍。
1.《C++Primer》

有“C++的百科全书”,C++程序员人手必备。对语法、语义的描述非常细致和严谨,适合有一定经验的C、C++程序员作为工具书和理论指导书使用,但由于其有一定深度,而没有进阶顺序的章节安排,所以不适合初学者做为教材使用,价格略高。

难度:★★☆

质量:★★★★★

广度:★★★★★

深度:★★★★

性价:★★★☆

2.

《C++Primer Plus》

初学C++不错的书,覆盖面较全,章节安排比较合理,由浅入深,也很容易,故因此失去了一些深度。价格比较便宜,但翻译质量略有不足。

难度:☆

质量:★★★☆

广度:★★★★

深度:★★★

性价:★★★☆

高级教程
3.

《Essential C++》

lippman的一部面向初学者的作品。在他写了那么后一本primer之后,为何还要写这么薄这么浅的书呢?其实primer对于初学者来说太笨重了,而这本书却是从不同的方面——C++的本质和组织结构对语言进行阐释,可以帮助初学者对这门语言有一个大致的了解,但知识范围不很全面,不适合系统学习,读者需要一定的编程知识。

难度:★☆

质量:★★★★

广度:★★★☆

深度:★★★

性价:★★☆

4.

《Effective C++》、《More Effective C++》

C++真牛人大手笔,之以条款的形式回答了程序员在使用C++时经常提出的“因该注意些什么?”,“因该避免什么?”,“因该怎样去解决?”,“为什么?”等问题。C++程序员想要让自己的水平上更高的档次,此二书必看。价格稍贵,有一定难度,不适合初学者。

难度:★★★☆

质量:★★★★★

广度:★★★

深度:★★★★★

性价:★★

5.

《C++编程思想》

除了讲述语言之外,有一定的工程性,从设计者的角度来描述C++怎样应用在实际的项目中。语言描述的全面性欠佳,但还是有一定精度的,尤其是在一些小技巧方面。本书还引入了大量的战例,通过一个个的真实项目来引导你使用C++的思想去思考问题。翻译很差,有一定难度。

难度:★★☆

质量:★★★

广度:★★★☆

深度:★★★★

性价:★★★

进阶教程
8.

《C++程序设计语言》

C++之父所作,被称之为“C++圣经”。不仅对语言,而且对语言周边的一些如发展史、语义哲学都有比较详细的描述。对语言的描述较为全面,同时包含一部分和程序库相关联的知识,并有一定深度,适合有一定语言基础的初学者,翻译质量不错,价格适中。

难度:★☆

质量:★★★★☆

广度:★★★★☆

深度:★★★★

性价:★★★☆

9.

《深度探索C++对象模型》

第一代C++编译器开发主管所写。如果你想成为真正的C++高手,看这本书,他为你讲述了编译器在处理各种语法时在“后台”所做的事。对C++有较深入了解的读者会在读后有恍然大悟之感。候杰翻译,质量相当不错,但内容太深,只适合对C++有较深了解的读者,价格偏贵。

难度:★★★★☆

质量:★★★★★

广度:★★★

深度:★★★★★

性价:★★

10.

《C++程序设计教程》(钱能-清华版)

国人所著,国人水平实在有限,深度和广度欠佳,放在这十大里实在是因为再挑不出好书了。可圈可点之处有讲解较为清析、简单,符合中国学生思路,价格便宜。

难度:☆

质量:★★★

广度:★★★☆

深度:★★★

性价:★★★★★

书读得很好了,实践是必须的!!!
学习开源,就尽可能在代码里找答案,而不是在代码之外找答案。

找工作,走向岗位,走向生活!!
岗位要求:从事c/c++开发3年以上,熟悉操作系统原理,精通linux/unix操作系统命令,可以在linux/unix操作系统环境下进行开发;学习能力强,能独立完成开源软件源代码的研究、破解工作,有开源项目开发经历、python或其他脚本语言开发经历的优先。

工作中要学会做笔记;程序员编码过程中总会碰到很多 bug,这些 bug 都应该算是我们的一种阅历,非常想把这些犯过的错误记录下来。

写读书笔记的好处

人脑不是电脑,看过的东西是会忘的,学过的东西也是会忘的。
当你看完一本书,或是文学的或是科学的,多少会学到记住一些东西。这时候,切切不可想当然的以为,这些东西你学到了,就会忠诚的永远追随着你。
读书笔记则会很好的帮助我们,在知识即将远离自己的时候,又快又准的把他们给拽回来,不需要重新去啃一遍大部头。当然我也从来不否认重读经典的益处,只是在时间如此珍贵的当前,亲笔书写读书笔记确实不失为浇筑学识之树常青的甘露,不至于还要去重新栽种一棵。

写博客,面向开发者的知识分享社区。让自己的力量贡献给许许多多的年轻人。
为什么要写博文
写一篇博文意味着要花一定的时间,有时候可能是一个小时,有时候可能会更多,于是人们开始去copy。在这个Ctrl+C越来越盛行的年代,我们还是输了,于是乎在我们的国度里,我们的计算机书算是输给国外的精英了。我们也有优秀的程序员,有优秀的工程师,只是在其中能与大众沟通的又有多少。我们的最终用户可从来不会管你用的是什么技术,他只懂得什么是体验,什么是速度等等。至于你说的东西,他不知道,也不会在乎。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gthujg
2020-06-11 · 贡献了超过249个回答
知道答主
回答量:249
采纳率:0%
帮助的人:16.9万
展开全部
多看书,反复看反复操作,多敲代码最重要的是能静下心来,坚持下去,你就成功了一大半。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
长沙新华电脑学院
2020-11-16 · IT、电竞电商、设计、动漫专业对口升学
长沙新华电脑学院
凡初中及初中毕业生进入长沙新华对口升学班读三年后,由长沙新华统一组织报职教高考对口升学,然后通过对口升学录取到大专或本科院校继续深造获取全日制大专/本科文凭。
向TA提问
展开全部
如果你要高效率的学习c,可以去电脑学校找老师带,当然要花钱的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百小度
2023-05-02
知道答主
回答量:27
采纳率:0%
帮助的人:4126
展开全部
如果你是要以后学习JAVA就不要学习C了。因为C语言的指针会很麻烦的,一头雾水。如果你非学C语言那就下决心吧,没有学不会的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式