首页 > 编程语言 >C++ Primer Plus学习笔记之预备知识

C++ Primer Plus学习笔记之预备知识

时间:2022-10-10 20:11:05浏览次数:53  
标签:代码 编程 C++ C语言 ISO cpp Plus Primer

前言

个人觉得学习编程最有效的方法是阅读专业的书籍,通过阅读专业书籍可以构建更加系统化的知识体系。
一直以来都很想深入学习一下C++,将其作为自己的主力开发语言。现在为了完成自己这一直以来的心愿,准备认真学习《C++ Primer Plus》。
为了提高学习效率,在学习的过程中将通过发布学习笔记的方式,持续记录自己学习C++的过程。

一、C++简介

C++的强大来自于“四继承两添加”:

  • “四继承”是指C++继承了C语言“高效”、“简洁”、“快速”、“可移植”的四大特性
  • “两添加”是指在C++在C语言的基础上添加了“面向对象编程(OOP)”、“泛型编程”两大支持
    C++融合了3中不同的编程方式:
  • C语言代表的过程性语言
  • C++在C语言基础上添加的类代表的面相对象语言
  • C++模板支持的泛型(独立于类型)编程

提示:学习C++时需要掌握C语言的知识(《C++ Primer Plus》会讲C语言基础知识)

二、C++简史

同C语言一样,C++也是在贝尔实验室诞生的,Bjarne Stroustrup于20世纪80年代设计并实现了C++。
Stroustrup加入了OOP特性和对C的泛型编程支持,但没有对C的组件作很大改动。因此C++是C语言的超集,这意味着任何有效的C程序都是有效的C++程序。C++的名称来自于C语言中的递增运算符++,这也表明C++是C的扩充版本。
计算机语言要处理两个概念——数据和算法。其中数据是程序使用和处理的信息,而算法是程序使用的方法。C语言作为过程性语言,强调的是编程的算法方面,C++语言因其面向对象的特性,强调的是数据。
OOP编程并不仅仅是将数据和方法合并为类定义。例如:

  • 可以方便地重用和修改现有的、经过仔细测试的代码(这也是C++的优点之一)
  • 信息隐藏保护数据
  • 多态可以实现在不同的编程上下文,拥有不同的运算符和函数定义
  • 继承让您能够使用旧类派生出新类
    泛型编程与OOP目标一致:使重用代码和抽象通用概念的技术更简单。
    OOP与泛型的不同:
  • OOP强调的是编程的数据方面,而泛型编程强调的是独立于特定数据类型。
  • OOP是一个管理大型项目的工具,而泛型编程提供了执行常见任务(如对数据排序和合并链表)的工具。

三、C++标准

  • 1990年,美国国家标准局(American National Standards Insitute,ANSI)成立了“ANSI X3J16”委员会,专门负责制定 C++标准(ANSI制定了C语言标准)。
  • 1991年, 国际标准化组织(ISO)成立“ISO-WG-21”委员会(C 标准小组被称为“WG14”)同ANSI成立联合组织ANSI/ISO,共同致力于C++标准工作。
  • 1998 年,获得ISO、IEC、ANSI批准的第一个国际标准ISO/IEC 14882:1998出台。该标准常被称为C++98,它不仅描述了已有的C++特性,还对该语言进行了扩展,添加了异常、运行阶段类型识别(RTTI)、模板和标准模板库(STL)。
  • 2003年,发布了C++标准第二版(ISO/IEC 14882:2003),简称ISO C++03标准,由于C++03没有改变语言特性,因此我们使用C++98表示C++98/C++2003。
  • 2011年,发布了C++标准第三版(ISO/IEC 14882:2011),简称ISO C++ 11标准,与C++98一样,C++11也新增了众多特性。

四、程序创建的技巧

编写的C++程序运行步骤:

  1. 源代码。使用文本编辑器编写程序,并将其保存到文件中,这就是程序的源代码。
  2. 源代码=》编译器=》目标代码。通过编译器将源代码翻译为主机使用的内部语言——机器语言。包含了翻译后的程序文件就是程序的目标代码(object code)。
  3. 目标代码、启动代码和库代码=》链接程序=》可执行代码。将目标代码与其他代码链接起来。链接指的是将目标代码同使用的函数的目标代码以及一些标准的启动代码(startup code)组合起来,生成程序的运行阶段版本。包含该最终产品的文件被称为可执行代码。

创建源代码文件,可以通过集成开发环境(integrated development enviroments,IDE)或者任何文本编辑器。给源文件命名时,需要使用正确的后缀,将文件标识为C++文件。例如:test.cpp,其中test是文件名,.是句点,cpp是扩展名。
C++源文件的扩展名如下表:

C++实现 源代码文件的扩展名
UNIX C、cc、cxx、c
GUN C++ C、cc、cxx、cpp、c++
Digital Mars cxx、cpp
Borland C++ cpp
Watcom cpp
Visual Studio C++ cc、cxx、cpp
Freestyle CodeWarrior cc、cxx、cpp、c++、cp

C++源代码通过不同编译器生成不同平台的可执行文件。Linux和Windows常见的编译器是g++。

标签:代码,编程,C++,C语言,ISO,cpp,Plus,Primer
From: https://www.cnblogs.com/hxsfx/p/16777025.html

相关文章

  • Microsoft Visual C++ 14.0 免费下载
    ​​https://pan.baidu.com/s/1uGOeqwpAO1RleXmTFt2Hrg ​​提取码:5zyd......
  • [转]Mybatis plus 多租户方案踩坑记录
    原文地址:Mybatisplus多租户方案踩坑记录-掘金(juejin.cn)公司的老项目要改造多租户,于是进入了大坑,本文写点遇到的坑以及解决方案,每次遇到问题在网上搜了好久,记录......
  • MyBatis-plus 新增时List转String 查询时String转list
    MyBatis-plus新增时List转String查询时String转list1.需求说明项目为:SpringBoot+MyBatisPlus采用实体类接受参数,有一个参数为List,对应的数据库字段为nvachar,要求新......
  • GitHub 开源推荐 | 一个轻量级、高性能的 C++ Web 框架
     Github开源推荐​​专注分享GitHub上有趣、好玩的开源项目,​​以帮助大家提高编程技巧,找到编程乐趣。如果你对开源感兴趣,想和大家分享一些优质项目,随时欢迎投稿(微信号:i......
  • C++ 栈和典型迷宫问题
    C++栈和迷宫问题1.前言栈是一种受限的数据结构,要求在存储数据时遵循先进后出(LastInFirstOut)的原则。可以把栈看成只有一个口子的桶子,进和出都是走的这个口子(也称为......
  • 【C\C++】函数指针与指针函数
    函数指针的优点1.灵活调用性设计之初,程序员可能不知道一些方法最后会怎么去具体的实现,就可以使用函数指针预留,后期直接挂接进来。2.更好的封装编写模块时,可以将一些方法......
  • 安全专属的IM即时通讯平台,WorkPlus信创国产化解决方案
    信创即信息技术应用创新,旨在实现信息技术领域的自主可控,保障国家信息安全。其核心是建立自主可控的信息技术底层架构和标准,在芯片、传感器、基础软件、应用软件等领域实现国......
  • WorkPlus移动门户,助力企业信息系统移动智慧互联
    在移动信息化时代,手机成为了信息化网络中的移动载体,人们对随时、随地登录互联网获取网络信息和服务正逐渐形成一种习惯,而企业也对随时随地可以进行移动化信息工作需求变得日......
  • SpringBoot+MyBatis Plus对Map中Date格式转换的处理
    在SpringBoot项目中,如何统一JSON格式化中的日期格式问题现在的关系型数据库例如PostgreSQL/MySQL,都已经对JSON类型提供相当丰富的功能,项目中对于不需要检索......
  • C++异步工作流框架
    背景异步回调,数据和代码混在一起,可维护性低。异步过程中,前面的状态数据失效问题。实现数据和逻辑分离。支持任务编排。支持任务重试。接口统一易用。支持同步、......