C++入门记-大纲
缘来
由于某个不可告人的目标以及想趁着还有精力的年龄,开始了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站
由于B站资源可能由于版本等其他原因被下架,可以通过win10客户端 哔哩哔哩动画开启下载,完成备份。
世界最大同性交友网站- GitHub
对于成系列学习最好的方式肯定是书籍和视频以及后续的总结了,以上两点能满足我的需要了。
环境简介
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
后续安装步骤参考
VsCode 配置参考如下文档
WIN下vscode调试C/C++,从零开始生成helloworld项目
VSCode用Code Runner编译运行c/c++
中文乱码问题参考:
mingw控制台中文乱码
通过以上步骤可以搭建一个C++环境。
大纲
C++语言简介
面向对象的基本概念(略)
类和对象进阶(略)
运算符重载(略)
类的继承与派生(略)
多态与虚函数(略)
输入/输出流(略)
文件操作(略)
函数模板与类模板(略)
废话
通过最近几年的经验发现,有时候自己学习也许很容易,但把自己学会的东西如何输出是一个挑战。何况自己真的学会了么?还是半瓶子不满一瓶子晃荡的水平?
现在还处于接受别人鱼的阶段,如何取“授人以渔”?那一定是多总结多思考。
第一步定义受众。
第二步定义一个框架,增补遗漏知识。
第三步输出
第四步接受反馈改进。
以上文档的受众先定义为我自己吧。我希望我可以只通过这个文档就能入门C++。谢阅。这篇很杂,链接一堆,正如我的心情。
C++入门记-大纲的更多相关文章
- C++入门记-构造函数和析构函数
前文回顾 本文档环境基于Vscode + GCC + CodeRunner 关于C++的环境搭建请参考下面链接: C++入门记-大纲 由于本人具有C#开发经验,部分相同的知识就不再赘述了.只列一下需要 ...
- Java入门记(五):容器关系的梳理(下)——Map
注意:阅读本文及相关源码时,需要数据结构相关知识,包括:哈希表.链表.红黑树. Map是将键(key)映射到值(value)的对象.不同的映射不能包含相同的键:每个键最多只能映射到一个值.下图是常见M ...
- STC 核心板 入门记
写在开始 STC核心板,它的软件十分全面,想要什么都有,非常适合新手入门. 上一次电赛刚结束,现在反正也啥也不太会,干脆学个这个吧. 顺便写篇博客记录一下. 记录第一次烧写 周四下单,周六到货.中午拿 ...
- Java入门记(四):容器关系的梳理(上)——Collection
目录 一.Collection及子类/接口容器继承关系 二.List 2.1 ArrayList 2.1.1 序列化的探讨 2.1.2 删除元素 2.1.3 调整大小 2.2 Vector和Stack ...
- Java入门记(三):初始化顺序
初始化顺序的规则 1.在一个类的对象实例化时,成员变量首先初始化,然后才调用构造器,无论书写顺序.如果调用构造器前,没有显式初始化,那么会赋默认值. 这样做法的原因可以理解为:构造器执行时可能会用到一 ...
- Java入门记(二):向上转型与向下转型
在对Java学习的过程中,对于转型这种操作比较迷茫,特总结出了此文.例子参考了<Java编程思想>. 目录 几个同义词 向上转型与向下转型 例一:向上转型,调用指定的父类方法 例二:向上转 ...
- Java入门记(一):折腾HelloWorld
HelloWorld,学习每门语言的第一步.有人戏称,这些年的编程生涯就是学习各种语言的HelloWorld,不知是自谦还是自嘲.目前所在的公司使用Java作为主要开发语言,我进行语言转换也大半年了, ...
- ACM入门记
[2015.12]零基础进队 [2016.4.10]浙大第十六届程序设计大赛 [2016.6.4]团体程序设计天梯赛初赛 [2016.7.16]团体程序设计天梯赛决赛 赛后总结:比赛的时候好慌,一道题 ...
- Docker入门记1
Docker是一个部署容器技术,它出现的目的主要解决开发人员在本机开发的时候安装的各类类库等一系列运行程序的包啊库啊,然后把这些引用的第三方类库和操作系统需要的配置打包起来,形成一个原子环境,然后部署 ...
随机推荐
- PHP cosh() 函数
实例 返回不同数的双曲余弦: <?phpecho(cosh(3) . "<br>");echo(cosh(-3) . "<br>" ...
- Skill 如何翻转一个list
https://www.cnblogs.com/yeungchie/ code 发现已经有内置了reverse(l_list) unless(fboundp('reverse) procedure(y ...
- C/C++编程笔记:C语言入门知识点(二),请收藏C语言最全笔记!
今天我们继续来学习C语言的入门知识点 11. 作用域规则 任何一种编程中,作用域是程序中定义的变量所存在的区域,超过该区域变量就不能被访问.C 语言中有三个地方可以声明变量: 在函数或块内部的局部变量 ...
- 省选模拟赛day4
怎么说?发现自己越来越菜了 到了不写题解写不出来题目的地步了.. 这次题目我都有认真思考 尽管思考的时候状态不太好 但是 我想 再多给我时间也思考不出来什么吧 所以写一份题解. T1 n个点的有根树 ...
- Spring Cloud Data Flow用Shell来操作,方便建立CICD
1 前言 欢迎访问南瓜慢说 www.pkslow.com获取更多精彩文章! 之前我们用两篇文章讲解了Spring Cloud Data Flow,例子都是用UI操作的,但我们在Linux系统上经常是无 ...
- Dropwizard+jersey+MDC实现日志跟踪以及接口响应时间统计
一.实现接口响应时间统计 1.1添加全局请求过滤器并注册 import org.apache.log4j.MDC; import org.slf4j.Logger; import org.slf4j. ...
- Spring bean自定义命名策略(注解实现)
我们都知道项目后台开发是从 控制层——业务层——mybatis层,@Controller.@Service.@Mapper...等等注解可以将对象自动加载到bean容器中,还能实现相应的功能,使用起来 ...
- Vouch-proxy 实现 Zabbix4.4 对接 SSO
Vouch-proxy 实现 Zabbix 对接 SSO Zabbix 自身不支持 SSO 对接,我使用 Nginx 代理 Zabbix,将请求转发至 Vouch-proxy,由 Vouch-prox ...
- SkyWalking 搭建及简单使用(Linux)
1.需求 公司项目采用微服务的架构,服务很多,人工监控是不可能的,项目的访问量很大,想通过日志查找某个方法中性能的问题也是非常困难的.但是系统的性能问题是不能忽视的.系统性能检测的问题如鲠在喉,经过长 ...
- 对象原型之__proto__
对象都会有一个__proto__指向构造函数的prototype原型对象,对象之所以能够使用构造函数的prototype原型对象的方法,就是因为有__proto__原型的存在. funct ...