跳转到指定楼层
上一主题 下一主题
收起左侧

如何从0开始学C++

 
全局:
本帖最后由 真的很开心 于 2021-11-4 21:55 编辑

有java基础的话,直接找给java码农上手c++的书或者课程大概过一遍,然后直接上codebase。公司或者开源的都可以,从某个感兴趣的模块切入,把这个流程high level搞懂,然后看别人c++是怎么实现的,如果你用java来写和这些有什么差别。这些差别就是c++的特有的概念或者语义,有不懂的再去就去c++ primer或者google c++ style guide上面查,把那些当成工具书。

强烈不建议0基础一上来就看c++ primer或者style guide,没有真实的使用环境和场景,大概率看完就忘了或者没法深入理解,效率其实非常低。



回复

使用道具 举报

🔗
 楼主| 美羊羊爱喝鱼头汤 2021-11-5 13:02:43 | 只看该作者
全局:
真的很开心 发表于 2021-11-5 00:52
有java基础的话,直接找给java码农上手c++的书或者课程大概过一遍,然后直接上codebase。公司或者开源的都 ...

感谢建议
回复

使用道具 举报

🔗
csphahaha 2021-11-5 13:28:26 | 只看该作者
全局:
最近也在入门C++的阶段,其实觉得楼主应该先弄明白学C++是要学到什么程度,再去做相应的努力。比如会java的话学C++语法用来刷题应该3天就够了,但并不够在linux上完成一个后端工程。
回复

使用道具 举报

🔗
酱汁 2021-11-5 14:15:22 | 只看该作者
全局:
我只想知道如何快速上手Object C....
回复

使用道具 举报

🔗
麻倉枼 2021-11-6 04:57:44 | 只看该作者
全局:
小丑骑士 发表于 2021-11-4 22:59
看楼主有比较强的java经验,我感觉我的建议还行。确实不适合新手学,但是不得不说那书是最全的,相当于c+ ...

重点是里面没有提及过任何关于memory management的事情。C++的Pointer为什么难学就是因为大部分其他的语言直接帮你解决了这个问题,像在JAVA里面,几乎所有Object都是reference,也有auto garbage collection,所以当一个新手想理解pointer的时候感觉特别难。

我觉得重点要分清

copy by value和copy by reference这两个点,我介绍那本书重点就是讲pointer的,而且是陈年老书,1995年出版的,然而我发现这本书才是新手该去学的。一旦理解了个中奥义后,其他事情就好办了。

你就会发现,什么11, 14, 17,20, 都只不过是在理解最基础的基础情况下改变出来让大家方便使用而已。
当然这个是我无脑说出来而已哈哈,反正C++不可能在短期内精通,只懂JAVA也只能说明只懂得如何使用它的API和framework, in the application side. C++是要懂电脑在想什么,别说我讲的高大上,C++的确很变态,只适合愿意寻找真理的人去学习
回复

使用道具 举报

全局:
工作的话  我比较推荐udacity和慕课网   比较系统  也不会讲太多你大概率不需要的知识。udacity可以搜到折扣,油管还有视频博主推荐的折扣75% off。蛮不错的
回复

使用道具 举报

全局:
oefox000000 发表于 2021-11-05 15:10:14
工作的话  我比较推荐udacity和慕课网   比较系统  也不会讲太多你大概率不需要的知识。udacity可以搜到折扣,油管还有视频博主推荐的折扣75% off。蛮不错的
感谢建议🙏
回复

使用道具 举报

🔗
brtt13 2021-11-6 09:20:11 来自APP | 只看该作者
全局:
太逗了zezszs
回复

使用道具 举报

🔗
JobOffer123 2021-11-6 11:33:45 | 只看该作者
全局:
本帖最后由 JobOffer123 于 2021-11-5 21:36 编辑

(一家之言,如有冒犯,勿拍,谢谢。)
(语言 = 语法 + 支持的库 + 惯用法,这里主要强调语法,C/C++ 的库也是个头疼的地方,不统一。习惯用法就更飘了)


这么多人推荐 C++ primer, 居然没人推荐 The C++ Programming Language,是因为不好理解么?还是不受欢迎。
C++ primer 和 The C++ Programming Language 是 C++ 中类似四库全书类的经典。Primer  注重语法以及内部实现,Programming Language 更偏设计思想。毕竟 Lippman 是在 Stroustrop 的领导下干活,当然后来晋升了。

除了 effective c++,scott 还写了一本 more effective c++, 类似于 姊妹篇 吧。也不错。不知道为啥也没人推荐。

你可以把 C++ 理解成三部分,面向过程的,面向对象,面向泛式(Generic Programming)。比如就内存管理来说,面向过程/C 里面用 malloc/free/realloc, 面向对象用 new/delete, 泛式/template 中有 smart_pointer/weaker_pointer.

学 C++,你可以花很多年,很深入地学,投入的精力、体力没个头。不太值得。 如果只是为了干活的话,找本薄点的语法书看看就行吧,在实践中学习。我知道的绝大多数人都是这么过来的。毕竟愿意啃 c++ primer 那么厚的书的人毕竟是极少数,也不是所有人都能投入那么多的精力的。

回复

使用道具 举报

🔗
JobOffer123 2021-11-6 11:54:25 | 只看该作者
全局:
麻倉枼 发表于 2021-11-5 14:57
重点是里面没有提及过任何关于memory management的事情。C++的Pointer为什么难学就是因为大部分其他的语 ...

“C++是要懂电脑在想什么,别说我讲的高大上,C++的确很变态,只适合愿意寻找真理的人去学习”

Thumb-up! 电脑如何运作 + 世界是如何运作的/抽象的,结合在一起,从而用电脑模拟世界。这里的世界,可以是我们要实现的业务,也可以是抽象。这也是为啥 C++ 中会有多重继承这种能折磨死人的变态存在,因为现实世界中有。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表