缘来

由于某个不可告人的目标以及想趁着还有精力的年龄,开始了C++学习之路。C++ 诞生很多年了,但依然具有强大的生命力。

我们来看下2020年8月TIOBE 8 月编程语言排行榜。



可以看到C以及C++以旺盛的生命力排在前几名。园子里每逢看到.neter学习java便是一顿腥风血雨。

此时我们不讨论java,就来整理下C++,偶尔也会兼顾下C。进而通过C/C++了解一下更其他的东西,比如数据结构,比如计算机网络。

了解历史

C++语言是有B吉Bjarne Stroustrup 于1979年在美国贝尔实验室开始设计开发的。1985年推出C++1.0版。1989年和1993年,推出了很多新功能的C++2.0版和C++3.0版相继问世。1998年C++的ANSI/ISO标准被投入使用,这是C++标准第一版,称为C++98.通常这个版本的C++被认为是标准C++。所有主流的C++编译器都支持这个版本的C++。

版本 标准名称 发布年份
第一版 C++98 1998年
第二版 C++03 2003年
第三版 C++11 2011年
第四版 C++14 2014年
第五版 C++17 2017年

C语言是C++语言的前身,在进一步扩充和完善C语言的基础得到C++语言。C++语言最初被命名为带类的C语言,由此可见两者之间的渊源,直到1983年才更名为C++。可以将C++语言看做是C语言的一个超集,C语言中的绝大部分语法成分都被保留了下来,实时上,标准的C程序也可以在C++语言的开发环境下运行。

资源

经过一周时间的积累,我搜索了几个学习的途径。

可以学习的网站-B站

C++教程从0到1入门编程

由于B站资源可能由于版本等其他原因被下架,可以通过win10客户端 哔哩哔哩动画开启下载,完成备份。

世界最大同性交友网站- GitHub

interview

C++ 匠心之作 从0到1入门资料

对于成系列学习最好的方式肯定是书籍和视频以及后续的总结了,以上两点能满足我的需要了。

环境简介

IDE/编辑器

这里会用VsCode作为IDE来进行开发学习。常用的IDE还有DevC++,CodeBlocks,VS2017/2019。

编译器

本系列文档编译器会使用GCC。下面来一段简介

(GNU Compiler Collection,GNU编译器套装),是一套由 GNU 开发的编程语言编译器。它是一套以 GPL 及 LGPL 许可证所发行的自由软件,也是 GNU计划 的关键部分,亦是自由的 类Unix 及苹果计算机 Mac OS X 操作系统的标准编译器。

GCC(特别是其中的C语言编译器)也常被认为是跨平台编译器的事实标准。

GNU编译器套件包括C、C++、 Objective-C、 Fortran、Java、Ada、Go语言前端等,也包括了这些语言的库(如libstdc++,libgcj等。)。

安装

1.进入官网 www.mingw.org



2.点击下载downloads

后续安装步骤参考

win10下MinGW的安装与配置(详细步骤)

windows下安装MinGW的配置

VsCode 配置参考如下文档

WIN下vscode调试C/C++,从零开始生成helloworld项目

VSCode用Code Runner编译运行c/c++

中文乱码问题参考:

mingw控制台中文乱码

通过以上步骤可以搭建一个C++环境。

大纲

C++语言简介

面向对象的基本概念(略)

类和对象进阶(略)

运算符重载(略)

类的继承与派生(略)

多态与虚函数(略)

输入/输出流(略)

文件操作(略)

函数模板与类模板(略)

废话

通过最近几年的经验发现,有时候自己学习也许很容易,但把自己学会的东西如何输出是一个挑战。何况自己真的学会了么?还是半瓶子不满一瓶子晃荡的水平?

现在还处于接受别人鱼的阶段,如何取“授人以渔”?那一定是多总结多思考。

第一步定义受众。

第二步定义一个框架,增补遗漏知识。

第三步输出

第四步接受反馈改进。

以上文档的受众先定义为我自己吧。我希望我可以只通过这个文档就能入门C++。谢阅。这篇很杂,链接一堆,正如我的心情。

C++入门记-大纲的更多相关文章

  1. C++入门记-构造函数和析构函数

    前文回顾 本文档环境基于Vscode + GCC + CodeRunner 关于C++的环境搭建请参考下面链接: C++入门记-大纲 由于本人具有C#开发经验,部分相同的知识就不再赘述了.只列一下需要 ...

  2. Java入门记(五):容器关系的梳理(下)——Map

    注意:阅读本文及相关源码时,需要数据结构相关知识,包括:哈希表.链表.红黑树. Map是将键(key)映射到值(value)的对象.不同的映射不能包含相同的键:每个键最多只能映射到一个值.下图是常见M ...

  3. STC 核心板 入门记

    写在开始 STC核心板,它的软件十分全面,想要什么都有,非常适合新手入门. 上一次电赛刚结束,现在反正也啥也不太会,干脆学个这个吧. 顺便写篇博客记录一下. 记录第一次烧写 周四下单,周六到货.中午拿 ...

  4. Java入门记(四):容器关系的梳理(上)——Collection

    目录 一.Collection及子类/接口容器继承关系 二.List 2.1 ArrayList 2.1.1 序列化的探讨 2.1.2 删除元素 2.1.3 调整大小 2.2 Vector和Stack ...

  5. Java入门记(三):初始化顺序

    初始化顺序的规则 1.在一个类的对象实例化时,成员变量首先初始化,然后才调用构造器,无论书写顺序.如果调用构造器前,没有显式初始化,那么会赋默认值. 这样做法的原因可以理解为:构造器执行时可能会用到一 ...

  6. Java入门记(二):向上转型与向下转型

    在对Java学习的过程中,对于转型这种操作比较迷茫,特总结出了此文.例子参考了<Java编程思想>. 目录 几个同义词 向上转型与向下转型 例一:向上转型,调用指定的父类方法 例二:向上转 ...

  7. Java入门记(一):折腾HelloWorld

    HelloWorld,学习每门语言的第一步.有人戏称,这些年的编程生涯就是学习各种语言的HelloWorld,不知是自谦还是自嘲.目前所在的公司使用Java作为主要开发语言,我进行语言转换也大半年了, ...

  8. ACM入门记

    [2015.12]零基础进队 [2016.4.10]浙大第十六届程序设计大赛 [2016.6.4]团体程序设计天梯赛初赛 [2016.7.16]团体程序设计天梯赛决赛 赛后总结:比赛的时候好慌,一道题 ...

  9. Docker入门记1

    Docker是一个部署容器技术,它出现的目的主要解决开发人员在本机开发的时候安装的各类类库等一系列运行程序的包啊库啊,然后把这些引用的第三方类库和操作系统需要的配置打包起来,形成一个原子环境,然后部署 ...

随机推荐

  1. PHP ezmlm_hash() 函数

    定义和用法 ezmlm_hash() 函数用于在 MySQL 数据库中保存 EZMLM 邮件列表的哈希值. 该函数接收一个 Email 地址参数,返回一个整数哈希值. 语法 int ezmlm_has ...

  2. C++程序员容易走入性能优化误区!对此你怎么看呢?

    有些C++ 程序员,特别是只写C++ 没有写过 Python/PHP 等慢语言的程序员,容易对性能有心智负担,就像着了魔一样,每写3 行代码必有一行代码因为性能考虑而优化使得代码变形(复杂而晦涩). ...

  3. 7.12 NOI模拟赛 探险队 期望 博弈 dp 最坏情况下最优策略 可并堆

    LINK:探险队 非常难的题目 考试的时候爆零了 完全没有想到到到底怎么做 (当时去刚一道数论题了. 首先考虑清楚一件事情 就是当前是知道整张地图的样子 但是不清楚到底哪条边断了. 所以我们要做的其实 ...

  4. CF R 209 div 2 CF359B Permutation 构造

    LINK:Permutation 休闲一下 开了一道构造题. 看起来毫无头绪 其实仔细观察第二个条件 0<=2k<=n. 容易想到当n是奇数的时候 k的范围更小 再手玩一下第一个条件 容易 ...

  5. 4.3 省选模拟赛 序列游戏 dp

    可以发现 某一段被删除后状态难以表示 也难以链接起来. 考虑暴力 有40分的状压dp 暴力存状态 然后枚举转移即可.最后注意和f[0]这个状态取max 不然一分都没有. const int MAXN= ...

  6. Linux下运行windows 系统下编辑的Python脚本显示“: 没有那个文件或目录”的过程及解决方案

    今天在 linux 系统下执行一windows下编辑的python脚本,提示(:没有那个文件或目录)英文提示:(:No such file of directory)如下: 查看文件的权限发现并没有问 ...

  7. application.yml使用@符合问题:'@' that cannot start any token. (Do not use @ for indentation)

    在application配置文件中使用@出现异常: Exception in thread "main" while scanning for the next tokenfoun ...

  8. C#LeetCode刷题之#788-旋转数字(Rotated Digits)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3967 访问. 我们称一个数 X 为好数, 如果它的每位数字逐个地 ...

  9. Centos搭建go环境以及go入门

    引言 本文主要聚焦于 如何在centos上搭建go环境以及go入门, 包括搭建go环境,hello world运行, 创建包等操作,初步入门go语言. 安装环境 在管理员权限下, 也就是root用户 ...

  10. .NET或.NET Core Web APi基于tus协议实现断点续传

    前言 前两天我采用技巧式方案基本实现大文件分片上传,这里只是重点在于个人思路和亲身实践,若在实际生产环境要求比较高的话肯定不行,仍存在一些问题需要深入处理,本文继续在之前基础上给出基于tus协议的轮子 ...