C++入门基础(1)

绪:

因为个人时间原因,我会用三篇短文来介绍C++入门基础这个章节。C++入门基础(1)主要讲解什么是C++、C++的发展史、C++的关键字、C++的重要性以及如何学习C++。
C++入门基础(2)包含的内容是命名空间、C++中的输入和输出、缺省参数和函数重载;在C++入门基础(3)中包含的内容是引用、内联函数、auto关键字(C++11)、基于范围for的循环(C++11)和指针空值nullptr的详解。下面开始进入主题:

目录

    • 绪:
    • 1.C++简介
    • 2.C++的发展史
    • 3.C++关键字(C++98)
    • 4.学习C++的重要性
    • 5.如何学习C++

1.C++简介

C++的前身是C语言,而C语言是面向过程的结构化和模块化的编程语言,它适合处理小规模的程序,对于复杂且规模较大的程序,在需要高度的建模和抽象的情况下,C语言并不实用。因此,在20世纪80年代,计算机界提出了面向对象的思想理念,以C语言为基础,C++秉着运行效率与开发效率的统一应运而生。C++继承了C的所有特性,在C的基础上提供了更多的语法和特性,例如类型加强、函数加强和异常处理等等。具体内容会在以后章节详绪。

2.C++的发展史

1979年,贝尔实验室的本贾尼等人分析Unix内核的时候,试图将内核模块化,于是以C语言为基础进行了扩展,增加了类的机制,完成了一个称之为C with classes的可以运行的预处理程序。以下为C++从C with classes开始的历史版本。

阶段 内容
C with classes 类及派生类、公有和私有成员、类的构造和析构、友元、内联函数、赋值运算符重载等
C++1.0 添加虚函数概念,函数和运算符重载,引用、常量等
C++2.0 更加完善支持面向对象,新增保护成员、多重继承、对象的初始化、抽象类、静态成员以及const成员函数
C++3.0 进一步完善,引入模板,解决多重继承产生的二义性问题和相应构造和析构的处理
C++98 C++标准的第一个版本,绝大多数编译器都支持,得到了国际标准化组织(ISO)和美国标准化协会认可,以模板方式重写C++标准库,引入了STL(标准模板库)
C++03 C++标准第二个版本,语言特性无大改变,主要:修订错误、减少多异性
C++05 C++标准委员会发布了一份计数报告(Technical Report,TR1),正式更名C++0x,即:计划在本世纪第一个10年的某个时间发布
C++11 增加了许多特性,使得C++更像一种新语言,比如:正则表达式、基于范围for循环、auto关键字、新容器、列表初始化、标准线程库等
C++14 对C++11的扩展,主要是修复C++11中漏洞以及改进,比如:泛型的lambda表达式,auto的返回值类型推导,二进制字面常量等
C++17 在C++11上做了一些小幅改进,增加了19个新特性,比如:static_assert()的文本信息可选,Fold表达式用于可变的模板,if和switch语句中的初始化器等
C++20 制定ing

3.C++关键字(C++98)

以C++98为标准,C语言关键字有32个,C++总计63个关键字。红圈部分为C++与C语言所共有的关键字。此处暂时不做详解。
C++入门基础(1)_第1张图片

4.学习C++的重要性

我们先来看两张图:
现代软件产品架构图:
C++入门基础(1)_第2张图片
商场收银系统架构图(大型的嵌入式系统):C++入门基础(1)_第3张图片
现代软件产品系统一般是由多种语言写成的,所有的软件系统都是为了满足客户的需求开发的,系统架构的目标是拥抱用户需求的变化,在这一点上面向过程的语言做不到。

从各种方面考虑,总结出三点学习C++的意义。

1)C++是一种更强大的C,通过学习C++能够掌握更多的软件设计方法。
2)C++是Java、C#、D等现代开发啊语言的基础,学习C++后能够快速掌握这些语言。
3)C++是各大知名企业挑选人才的标准之一。在操作系统及大型系统软件开发、服务器端开发、人工智能、网络工具、游戏开发、嵌入式领域、数字图像处理、分布式应用、移动设备等各种领域均能运用。

5.如何学习C++

我个人的学习方法是:
1.多总结。包括写博客和画思维导图
2.多看书。徐徐图之,在公众号上输出读书笔记。

1)初窥门径:《C++程序设计》《高质量程序设计指南 第三版》
2)潜心修行:《Effective C++》 《C++编程思想》《C++primer》
3)深入浅出:《深度探索C++对象模型》《STL源码剖析》

3.勤刷题。主要来源是牛客和力扣网。

你可能感兴趣的:(c++,c++,开发语言)