C++简介( C++ Primer Plus)

2023-05-16

C++历史:

        1980年,贝尔实验室的 Bjarne Stroustrup (本贾尼.斯特劳斯) 开始对C进行改进和扩充。

        1983年正式命名为C++。

支持3钟不同的程序设计
过程化程序设计
数据+算法
明确计算机处理数据的详细过程
用程序设计语言描述处理过程
缺点:
由于程序规模的扩大,造成程序结构的混乱,难以保证程序的正确性
面向过程(结构化程序设计):
自顶而下、分而治之的方法,将整个程序按功能划分为几个可独立编程的子过程模块,每一子模块
完成相应的子任务,主过程通过调用各子模块完成全部处理工作。
规定程序结构只有3种:顺序,分支和循环
优点:
性能比面向对象高,因为类调用时需要实例化,开销比较大,
比较消耗资源;比如单片机、嵌入式开发、 Linux/Unix等一般采用面向过程开发,性能是最重要的因素。
缺点:
没有面向对象易维护、易复用、易扩展
面向对象程序设计(Obiect-Oriented Programming:简称OOP):
以对象为基础,以消息或时间来驱动对象执行处理的技术。
将数据和对数据的操作封装在一起,抽象为类,采用数据抽象和信息隐藏,类之间互相交互,共同构成大型的面向对象系统。
代码重用
优点:
易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护
缺点:
性能比面向过程低
泛型程序设计
独立于特定类型的编程
用途
提供执行常见任务的通用工具
包括泛型的函数和泛型的类
类(Class):
具有相似属性和行为的一组对象。属性和操作的集合。
类的实例是对象。
对象(Obiect):
系统中描述客观事物的实体。
面向对象的四个基本特征:
封装(Encapsulation):
将数据和操作封装成一个独立个体,对外隐藏实现细节。实现信息隐藏。
类是面向对象系统中最基本的封装单元。
继承(Inheritance):
对现实世界的模拟。允许在已有类的基础上通过增加新特性而派生出新的类。
原有的类称为基类(base class),而新建立的类成为派生类(derived class)。
 
多态性(Polymoephism):
统一函数名对应多个具有相似功能的不同函数。
相同的调用放肆,不同对象收到相同的消息后产生不同的行为。
两种形式的多态:静态和动态多态。
抽象:
抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。
抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。
抽象包括两个方面,一是过程抽象,二是数据抽象。
C++在C语言的基础上新增了许多特性,其中包括:
类和对象
继承
多态、虚函数和RTTI(运行阶段类型识别)
函数重载
引用变量
泛型(对立于类型的)编程,这种技术是由模板和标准库(STL)提供的
处理错误条件的异常机制
管理函数、类和变量名的名称空间
书籍:
2.C++ Primer Plus
3.C++ Primer工具书
4.C++ Program Language收藏,高级特性
5.C++ 对象模型虚函数,虚函数模型
6.Effect C++小技巧
7.More effective C++
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++简介( C++ Primer Plus) 的相关文章

随机推荐

  • 目标检测——Yolo系列(YOLOv1/2/v3/4/5/x/6/7/8)

    文章目录 目标检测概述目标检测概述基础知识和术语 YOLOv1YOLOv2YOLOv3YOLOv4YOLOv5YOLOxYOLOv6YOLOv7YOLOv8对比 目标检测概述 目标检测概述 什么是目标检测 xff1f 滑动窗口 xff08
  • ROS机器人应用(1)—— 搭建ROS虚拟机环境

    文章目录 搭建ROS虚拟机环境1 连接小车wifi2 下载vmware虚拟机3 下载ubuntu系统镜像4 远程登录5 常见问题6 简单操作演示 搭建ROS虚拟机环境 1 连接小车wifi 小车开机后会发出wifi xff0c 我们可以使用
  • ROS机器人应用(6)—— 激光雷达建图和导航

    文章目录 一 激光雷达建图二 建图算法切换及其优缺点三 自主导航四 多点导航 一 激光雷达建图 小车开机 xff0c 连接WIFI xff0c 密码 xff1a dongguan 启动激光建图 xff08 服务端 xff09 span cl
  • 学习记录(一)

    ionic起步 首先 xff0c 网络上扒拉教程安装ionic xff1a https blog csdn net weixin 38299362 article details 79626812 如果是配合angular使用 xff0c
  • 嵌入式软件开发之Linux下C编程

    目录 前沿 Hello World xff01 编写代码 编译代码 GCC编译器 gcc 命令 编译错误警告 编译流程 Makefile 基础 何为 Makefile Makefile 的引入 前沿 在 Windows 下我们可以使用各种各
  • 信息加密(简单的字母转换)

    题目 在传递信息的过程中 xff0c 为了加密 xff0c 有时需要按一定规则将文本转换成密文发送出去 有一种加密规则是这样的 xff1a 1 对于字母字符 xff0c 将其转换成其后的第3个字母 例如 xff1a A D xff0c a
  • TCP协议与UDP协议详解

    TCP协议 TCP xff0c 即Transmission Control Protocol xff0c 传输控制协议 人如其名 xff0c 要对数据的传输进行一个详细的控制 TCP协议的特点 xff1a 有连接 xff0c 可靠传输 xf
  • C语言头文件相互包含的问题

    我深知前路风雨 xff0c 但我依然微笑前行 头文件相互包含的问题 问题 xff1a 头文件交叉包含是否会导致递归包含 xff0c 导致编译出错 xff1f 如果不会因为递归包含出错 xff0c 那么交叉包含是不是完全没问题 xff1f 1
  • 【51单片机STC89C52】DHT11温湿度传感器的使用

    目录 一 DHT11概述 数据传送逻辑 数据格式 通讯过程时序图 二 检测模块是否存在 时序逻辑分析 代码实现 三 读取温湿度数据 DHT11传输0的时序分析 DHT11传输1的时序分析 代码实现 四 串口打印 一 DHT11概述 数据传送
  • Hadoop MapReduce自关联(单表关联)-案例

    案例 xff1a 获取孙子和祖父母的列表 单表关联 txt child parent Tom Lucy Tom Jack Jone Lucy Jone Jack Lucy Mary Lucy Ben Jack Alice Jack Jess
  • Oracle-Grouping sets

    Oracle Grouping sets span class token comment 创建一个雇员表 span span class token keyword CREATE span span class token keyword
  • Udacity深度学习-深度神经网络-assignment3

    六层深度神经网络 43 SGD 43 L2正则项 43 dropout xff0c TensorFlow实现 NN with SGD L2 batch size 61 128 layer cnt 61 6 层数 graph 61 tf Gr
  • 【基于STM32的串口通信----用软件模拟】

    注 xff1a 这是我上班第一次学习串口通信 xff0c 此文章基于STM32F4系列单片机 一 xff1a 什么是软件模拟串口通信 xff1a 1 平常所用串口通信都是用的单片机外设 xff0c 是单片机内部自带的模块 xff0c 只需要
  • 关于单片机内存详解

    引言 xff1a 内存是单片机的重要组成部分 xff0c 那么如何操作 分配内存对于一个嵌入式软件工程师来说便是极为重要的 一 存储器的定义 xff1a 存储器单元实际上是时序逻辑电路 的一种 按存储器的使用类型可分为只读存储器 xff08
  • Keil编译报错--IAP\IAP.sct(7): error: L6236E: No section matches selector - no section to be FIRST/LAST.

    之前在用CUBE生成文件时发生了这样的报错 xff1a IAP IAP sct 7 error L6236E No section matches selector no section to be FIRST LAST 发生这样的报错是因
  • Keil编程环境背景颜色--护眼色

    在Edit中选择Configuration 选择Colors amp Fonts 点击下载那个按钮 按照这个参数输入自定义颜色并添加 xff0c 就保存为一个护眼的绿色啦
  • win10下MissionPlanner地面站的安装

    win10下MissionPlanner地面站的安装 编辑器 xff1a Viaual Studio2019社区版 安装时工作负荷和单个组件的选择如下图所示 xff0c 然后自定义安装位置进行安装 安装完成后启动MP地面站 启动Visual
  • git fatal: The remote end hung up unexpectedly 错误

    使用git将本地项目添加到远程仓库报以下错误 git push u origin master Counting objects 2053 done Delta compression using up to 2 threads Compr
  • git submodule update --init --recursive

    转自https blog csdn net wangjia55 article details 24400501 转自http webfrogs me 2013 03 20 git submodule 开发过程中 xff0c 经常会有一些通
  • C++简介( C++ Primer Plus)

    C 43 43 历史 xff1a 1980年 xff0c 贝尔实验室的 Bjarne Stroustrup 本贾尼 斯特劳斯 开始对C进行改进和扩充 1983年正式命名为C 43 43 支持3钟不同的程序设计 过程化程序设计 数据 43 算