缘来

由于某个不可告人的目标以及想趁着还有精力的年龄,开始了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. CF 633 div1 1338 B. Edge Weight Assignment 构造

    LINK:Edge Weight Assignment 这场当时没打 看到这个B题吓到我了 还好当时没打. 想了20min才知道怎么做 而且还不能证明. 首先考虑求最小. 可以发现 如果任意两个叶子节 ...

  2. 3.28 省选模拟赛 染色 LCT+线段树

    发现和SDOI2017树点涂色差不多 但是当时这道题模拟赛的时候不会写 赛后也没及时订正 所以这场模拟赛的这道题虽然秒想到了LCT和线段树但是最终还是只是打了暴力. 痛定思痛 还是要把这道题给补了. ...

  3. react-router分析 - 一、history

    react-router基于history库,它是一个管理js应用session会话历史的js库.它将不同环境(浏览器,node等)的变量统一成了一个简易的API来管理历史堆栈.导航.确认跳转.以及s ...

  4. 使用VMware虚拟机建立Ubuntu与主机win7的文件共享与传输

    1.要想在虚拟机与主机之间建立共享文件夹必须先安装VMware Tools.方法见https://www.cnblogs.com/lsc666js/p/13403919.html. 2.在VMware ...

  5. Requests接口测试库-官网快速上手

    Requests 一个发送HTTP请求的库基于urllib3,相比自带的库,提供了更高效简洁的可用方法,测试从业者用来做接口测试的一个好工具 文章内容均来自官网:https://requests.re ...

  6. “随手记”开发记录day12

    就我们团队昨天的讨论,今天进行更改. 今天我们先简单的更改了之前的粉色背景图,因为用户反应总览界面的“总览”二字,是深粉色背景不太美观.进过多次更改之后使颜色变得更舒适.

  7. Spring IOC 剖析

    模拟实现 Spring Ioc 控制反转功能 使用 => 原理 => 源码 => 模拟实现 使用:了解 原理:熟悉 源码 And 模拟实现: 精通 对照 Spring 功能点 Spr ...

  8. Mac 系统更新怎么忽略

    1.在“终端”命令行中输入以下命令: sudo softwareupdate --ignore “macOS Catalina” 2.按回车键,然后输入管理员密码*,然后再次按回车键,以超级用户权限执 ...

  9. java开发在线下载功能,自动打开浏览器下载功能下载网络文件或图片

    因为业务的需要,公司产品要求商品详情页面有个下载的功能 找了很多的方法,发现有的需要打开一个新窗口,而且在某些浏览器上不适用,所以继续寻找更好的方法 跟同事沟通后发现他那里有个下载的方法,不过是C#写 ...

  10. JDBC的开发步骤

    一.JDBC概述 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问, 它由一组用Jav ...