体育足球博彩 > SEO教程 > C++ 如何入门?

C++ 如何入门?

admin SEO教程 2020年08月27日

  去Visual Studio,点屏幕左侧那个巨大的绿色按钮下载 Visual Studio 2015 Community,放心是免费的(前提是:你不在用苹果的电脑)

  安装 VS,在安装的时候点「自定义安装」,然后勾选「编程语言」里的 Visual C++,等他装完。装完打开应该差不多是这个样子:

  继续,创建一个 win32 控制台程序的项目。这里如果左边没找到 C++ 就表明你装 Visual Studio 的时候选项没钩,请重新打开安装程序安装这部分。

  (图片引用自毫无编程基础的小白准备学习C语言,用VC6还是VS2015? - 孙明琦的回答)

  我觉得我应该到 C++ 入门水平了吧。简单谈谈。租的房子没有网,太无聊。Spanner 论文又太难,看不下去了。

  从大一说起吧。我大学之前完全没有编程经验,连字都打不利索。当时想学的专业是数学,高中看了一些群论、组合数学、不等式、数论的话题,觉得特别有兴趣,也自学了微积分。然而没考上数学系,就来了软工。大一的时候没什么方向,很迷茫。有一天水知乎的时候,看见当时@果冻虾仁聚聚发了好像是面经相关的东西,就私信他问问他关于大学的规划。他给了我很多宝贵的建议。然后我就开始按照他说的,踏上了学习 C++ 的道路。

  其实学习路线和很多人都差不多,就是看《C++ Primer》嘛。我当时只学了点 Python,看这本书也没什么难度,好像俩月就看完了。然后又上知乎搜“如何进阶”之类的。看到了知友们广泛推荐的《STL 源码剖析》和《Inside the C++ Object Model》。我觉得这两本书是必看的,里面有很多 C++ 基础思想,例如 type traits、偏特化、虚函数表、构造析构、rvo 之类的。

  然后就看到了模板元编程这一块,好像很有意思,学学吧。我在 stack overflow 上看到推荐了两本书《Modern C++ Design》和《C++ TMP》。其中第一本还是很好懂的。第二本当时说什么都看不懂,然后看到了@vczh聚聚说学 TMP 之前要学 Haskell。好吧,然后我就找了本《Haskell 趣学指南》看了看。果然,看完了这本书,有了函数式的底子再看模板元编程就很轻松了。然后接触到了知乎的 pl 圈,又被安利到了 Scheme,又去看了《The Little Schemer》。学了 Scheme,模板元编程就完全懂了。

  这之后就一直没接触 C++ 的东西了,因为学校开了门 Linux 的课,那门课的老师(武大名师陈刚)非常硬核,讲了一大堆内核知识,我就被吸引了,又去学了半年的 Linux 内核。

  时间跳转到大概半年前吧,我日常在水知乎,在一个“C++ 有多难”的回答下随便留言了一句“少年,用模板元编程撸一颗红黑树吧”。然后被@暮无井见铃聚聚回复了,暮无聚聚让我说具体点,他有一些兴趣。当然那个时候的我写不出来模板元编程的红黑树,就写了一个简单的 BSTree。暮无聚聚给我点赞了,还有好多人关注了我。我就开了个打算专门写模板元编程的专栏,就是《愚人之旅》啦。这个专栏的名字来自于塔罗牌,当时中二,特别入迷神秘学的东西。塔罗的大牌就是愚人的旅程。然后反响还不错,就一直在写,学习重心也放在了知乎上。

  知乎上有很多优秀的 C++ 程序员,我从他们那里学到了很多,类似 inline、ABI、two phrase lookup、odr-used 等概念都是我在知乎学到的。我又去 cppreference 上重新看了看一些 C++ 的概念,洗了洗脑,纠正了之前很多错误的认识(所以说《C++ Primer》讲的还是太少太少了)。然后又看了看 cppcon 的视频,接触到了我现在的男神 Louis Dionne。又跑去学了学 hana 库。毕竟模板元编程是和编译器和标准做斗争,不可避免地了解到了不同的编译器的 bug 以及标准的提案。我就去简单的看了看 clang 的代码和一些模板相关的提案。

  到了大三下开始找实习了,认识了@饭米聚聚。他把我内推到了 Smartx。现在我在这家公司实习,做分布式存储相关的工作。公司技术氛围特别好,代码最起码都是 base C++11 的。像什么 lambda、auto、智能指针、模板、宏都是满天飞。同事也很厉害。现在工作的很开心。

  PS:现在我的日常就是被@pragma twice聚聚喷,太菜了什么的。

  因为最近才开始学C++, 自学过程很愉快,所以想把这本好书分享给大家,虽是英文版,但主要看他的代码、运行结果、分析,就足够了。很清楚!比市面上其他书好太多,以动手编程为导向,而不是各种抽象概念。

  快速地用一张图来展现一下这本书的精华之处:1.先用文字解释非参数函数的概念.2.用清晰的代码做完整的例子【listing 7.3】,来实践应用非参数函数.3给出代码运行的结果【output】 4.写出例子中每行代码的逻辑含义【Analysis】。

  这本书采用的写作手法,是我认为最简单、最快速、最符合逻辑的c++入门的写作手法。不妨一试,概念读完后,把例句的代码复制到自己的编译器,自己动手运行代码看看跑出来的结果,自己试着理解其中的命令和C++语言,动手写比什么都强。

  2.进一步提升,可以读Effective C++(第3版 中文版)More Effective C++(中文版)这两本书,帮助你写更规范专业的 C++代码

  对1&2中的重点难点做了深入剖析,BTW 课程主讲就是上面两书的翻译侯捷老师

  2.觉得书难啃的,可以看对应的在线课STL标准库与泛型编程 博览网 Boolan

  课程还有个综合版《C++开发工程师》微专业 博览网 Boolan适合想系统学习 C++的

  掌握这两部分,才是真正的 C++入门了,即可以从事 C++开发的相关岗位工作。

  我最初开始学C++的时候,虽然我有C语言和C#的基础,但是还是完全学崩了,以致于我在好几个月的时间里都不敢再碰C++。

  这篇文章彻底拯救了我,不仅让我重拾信心,而且让我轻松地掌握了过去对我而言难以掌握的C++知识。现在C++是我最爱用的编程语言,写起来轻松愉快。

  所以树立好正确的观念很重要。希望想要学C++的同学都读一下这篇文章,真的很精彩。

  说实话,如果只是入门的话,C++ Primer那么厚的书从头读到尾真的没有必要。

  学习任何一种编程语言,要尽快上手才是最重要的。快速过一遍C++的语法,然后就开始做项目,在项目中学习和精进。

  看了楼上说的很多答案都很好,但感觉突然一下罗列那么多本书,是不是会吓退题主?而且感觉无从下手?首先,我也只是个学了不久的大学生而已,但我觉得已经算是基本入门了吧,所以,斗胆来说几句。

  首先,入门的话,推荐一本书,是谭浩强老先生的《C++程序设计》,我们专业上这门课的时候就是用的这本书,我看到,好像网上有很多人喷这本书,说里面有很多错误,我用的时候感觉确实有一些错误,但或许也可能是版本的问题吧。但是,我觉得这本书入门还是很好的,里面的知识点足够细,是比较适合自学的(我们老师也这么说的)。如果说,C++primer(确实好书)的话,我个人建议还是不要一开始就看吧(如果题主意志力足够强,那也可以直接尝试去读这本大部头,但我学js的时候,直接看的红皮书,就感觉稍微有点枯燥)。

  第二点,我强烈建议题主在学习C++的时候,配合着刷一些oj上的题(如果不明白oj,请自行百度或者谷歌)。通过刷题,不仅增加学习的动力,而且,对于那么细节的知识点,这是一个熟悉并练习的好方法。很多大学都有自己的oj平台,而且大部分是开放的,题主可以自行去找。

  第三点,个人建议,准备一个小本子,在学习过程中的心得体会可以记一记。还有,在读书的时候,有疑问的地方,可以画下来,先留着,继续往后看,因为,有些地方,你一时不懂,可能看完后边,前边就懂了。

  第四点,我们老师曾经嘱咐我们,一定要学会去谷歌(如果不会翻墙,百度也挺好的),不懂的知识点,去查一查,很多大牛的博客才是真正的编程知识源泉。

  学习c++,我们是认线天学习计划,每天早起学习c++ primer 1.5小时,已持续36天

  C语言之所以命名为C,是因为C语言源自Ken Thompson发明的B语言,而 B语言则源自BCPL语言。

  C语言是一种结构化语言,C语言在解决问题时是一种面向过程的思路:分析解决问题所需的步骤,用函数把这些步骤依次实现。

  C++是一种面向对象语言,C++在解决问题时时面向对象的思路:把构成问题的事务分解为各个对象,建立对象的目的,不是完成一个步骤,而是描述某个事务在解决整个问题步骤中的行为。

  C语言是面向过程的编程,它最重要的特点是函数,通过main函数来调用各个子函数。程序运行的顺序都是程序员事先决定好的。

  C++是面向对象的编程,类是它的主要特点,在程序执行过程中,先由主main函数进入,定义一些类,根据需要执行类的成员函数,过程的概念被淡化了(实际上过程还是有的,就是主函数的哪些语句),以类驱动程序运行,类就是对象,所以我们称之为面向对象程序设计。面向对象在分析和解决问题的时候,将涉及到的数据和数据的操作封装在类中,通过类可以创建对象,以事件或消息来驱动对象执行处理。

  C语言和C++的最大区别在于它们解决问题的思想方法不一样。C语言主要用于嵌入式领域,驱动开发等与硬件直接打交道的领域, C++可以用于应用层开发,用户界面开发等于操作系统打交道的领域。

  c++设计出来的目的就是c with class,但是很多人在现在使用过程中就是c with class了,包括我自己,effective c++写出来了c++有四种使用方式

  初学者用《C++ Primer》学 C++,相当于小学生用《辞海》学中文:轻则如看天书一般,半小时弃坑,书沦为枕头、电脑垫、朋友圈拍照工具;重则对编程失去信心,永远停在了原地。

  05C++11 的出现及C++14 对 C++11的重要补充,让 C++ 这门古老的语言注入了新的活力。如果你还在使用传统 C++,打着 C++ 的名号写出 C 语言代码,请停下来。本教程将带领你快速上手 C++11/14 的重要特性。

  95本课程将用C++动手实现经典游戏-俄罗斯方块,课程难度适中,适合初学C++并且有一定基础的同学。

  182课程内容主要通过C++和openGL库来实现了一个吃豆人的小游戏。使用了标准模板库,既对自己之前知识的检阅也是对C++编程能力的一种提升。

  166本课程主要讲解了C++ STL的容器和算法的实现,通过本课程可以快速掌握顺序容器vector、list 和 deque 以及关联容器 set 和 map 等,更有迭代器和算法的讲解。

  218本课程通过 C++ 实现了一个迷宫游戏,游戏不仅涉及到简单的 C++ 游戏思想,还涉及到深度优先遍历算法。适合具有 C++ 基础的同学进行练习巩固知识。

  58使用 C++实现 OpenGL GLUT 实现一个简单的太阳系行星系统,将涉及一些三维图形技术的数学基础、OpenGL 里的三维坐标系、OpenGL 里的光照模型、GLUT 的键盘事件处理。

  68服务器开发中 Web 服务是一个基本的代码单元,将服务端的请求和响应部分的逻辑抽象出来形成框架,能够做到最高级别的框架级代码复用。本次项目将综合使用 C++11 及 Boost 中的 Asio 实现 HTTP 和 HTTPS 的服务器框架。

  71使用 C++ 和 OpenCV 提供的库函数,实现摄像头的实时监控功能,并通过监控画面的运动检测选择是否记录视频。监控人员可选择输出图像的模式以更容易的分辨监控中的异常情况。

  57使用 C++对银行排队服务进行模拟,以事件驱动为核心思想,手动实现模板链式队列、随机数产生器等内容,进而学习概率编程等知识。作为可选进阶,这个模型同时还能稍加修改的应用到 CPU 资源争夺模型中。

  051本课程使用C++实现一个具备服务端和客户端的即时通信聊天室,涉及网络编程,C++面向对象程序设计等知识。

  052本实验使用 C++ 实现一个课程管理系统,在这个过程中会介绍C++11的很多特性,同时可以熟悉Linux下的C++语言编译方法及简单的Makefile编写。

  66获得内存池所分配的内存速度高于从堆中获得分配的内存的速度,一个长期稳定运行的服务在追求极致的过程中,实现内存池是必不可少的。和标准库中的默认分配器一样,内存池本质上也是分配器,本次实验将设计并使用 C++实现一个高性能内存池。

  60本次实验将使用利用 OpenCV 来实现对视频中动态物体的追踪。进行本节的实验时,您需要先完成 C++实现太阳系行星运行系统的相关实验,才能进行之后的学习。

  08Docker 的本质是使用 LXC 实现类似虚拟机的功能,进而节省的硬件资源提供给用户更多的计算资源。本项目将 C++ 与 Linux 的 Namespace 及 Control Group 技术相结合,实现一个简易 Docker 容器。

  69Markdown 几乎成为了程序员编写文档的标配,Markdown 的相关语法简单,解析 Markdown 文本能够加深日后编写编译器中词法分析的理解,本项目将使用 C++ 实现 Markdown 解析器,并将解析的内容生成为 HTML。

  45本课程通过使用C++语言实现智能指针的过程,来了解C++基本程序设计的方法,包括类的定义与使用,运算符的重载,模板类的使用方法,以及引用计数技术。

  82本课程将学习 C++ 利用 ffmpeg 解码视频数据,将解码后的视频数据播放出来。通过本实验学习 ffmpeg 和 SDL 基本的用法。

  57内存泄漏一直是 C++ 中比较令人头大的问题, 即便是很有经验的 C++程序员有时候也难免因为疏忽而写出导致内存泄漏的代码。除了基本的申请过的内存未释放外,还存在诸如异常分支导致的内存泄漏等等。本项目将使用 C++ 实现一个内存泄漏检查器。

  341本课程使用 C++ 11 实现了一个完全兼容 redis 的 kv 数据库项目——Qedis ;该项目会使用到一些 C++11 核心特性和 STL 库,并利用已有的 tcp 网络库,逐步构建出一个完全兼容 Redis 的更高性能的内存数据库。通过本课程的学习,你可以学习到 C++11 的核心特性应用,Redis 核心功能逻辑实现,以及 Redis 服务的运作原理。

  241本课程使用 C++ 语言自制一个脚本语言。麻雀虽小,五脏俱全。它完整的支持函数,条件/位/逻辑运算,原生字符串/数组类型等特性。主要将从理论出发,逐步构建词法分析器,语法分析器,AST,运行时。最终实现一个完整的脚本语言,并且使用该脚本语言解决一些实际问题。

  205本课程主要充分利用了 C++ 的特性和泛型的编程思想,对 XML 文档内容的解析。通过本课程的学习,可以规范我们的编程习惯并积累相关的项目经验。整个课程最核心的内容是对 XML 文档的处理,因此封装了一个类用于处理文档,所有的 XML 解析功能都会基于文档。并且为了优化内存泄漏和管理问题,还设计了内存管理器类。除此之外,课程还包含了指针,字符处理和动态数组等相关知识点。

  414RPC 的全称为 Remote Procedure Call ,意为远程过程调用。 RPC 可用于构建基于 B/S 模式的分布式应用程序。 RPC 是传统本地过程调用的一种扩展,使得被调用过程不必与调用过程位于同一物理机中。本实验将带领大家实现 RPC 框架。

  C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。

  C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。

  那么该如何着手学习c语言呢,我整理了一套系统的学习方案,只要按照这套学习方案进行学习,一定可以学有所成。

广告位
标签: c++ 教程 知乎