C++的修仙之旅 - 《Essential C++》
- 标题 : C++的修仙之旅 -《Essential C++》
- 起源: 此博客根据知乎推荐入门C++学习的书本所做的学习笔记,为了突出C++学习目的以及节省学习时间,此博客跳过了《Essential C++》书中 大部分C 和 编程基础知识,做了精简的《Essential C++》的学习笔记-
- 已更新次数 2
- 最近一次更新时间:2021 6 3
- 第一次更新时间: 2021 6 3 0:12
- 最近更新内容:
- 下次更新:
第一章C++ 的编程基础
1.1 C++程序语言组成
基础数据类型:
- 布尔值(Boolean)
- 字符(character)
- 整数(integer)
- 浮点数f floating point)
算术,关联,逻辑运算符
- 等号运算符( = =)
- 小于等于( < =)
- 运算符以及赋值(alignment, = ) 运算符
- 累加(++)运算符
- 条件运算符(?:)
- 复合赋值( + =) 运算 符
循环、控制、条件分支及语句
- 例 如 i f 语句以及while循环,可用来改变程序的控制流程
复合型类别:
- 指针 数组
- 指针:间接参考一个已经存在的对象
- 数组:则用于定义一组具有相同数据类型变量
标准的,通用的,抽象化程序库
- 字符串
- 向量( vector)
如何撰写 C++ 程序
关键词
关键词 乃是程序语言先行定义一些具有特殊意义的名称
如 int 用来表示语言内建整数型数据型
函数
函数是一块独立的程序序列,能够执行一些运算,他包含4 个部分
- 返回值 的类别(return type)
- 函数名称 (parameter list)
- 参数表 (parameter list)
- 函数主体 (function boby)
类
类 是用户自定义的数据类型(ser-defined data type)
class 的机制 让我们得以把数据型别加入我们的程序中,并有能力识别他
面对对象- 类体系(class hierarchy) 定义一个整个家族体系的各相关类型
列如 : 终端机 与 文件输入装置
终端机 与 文件输出装置
C++ 基础数据型别
- 布尔值 (Boolean)
- 字符 (charmter)
- 整数 (integer)
- 浮点数 ( loating point)
Class 机制
Class 机制 赋予了 ”增加 程序内之型别抽象化的能力“
像摄像机 我们可以定义一个 point3d class, 用来表示 空间位置和 视角方向
我们同样 使用七个浮点 数值表示照相机的特性 ,不同的是 ,我们不再直接面对7个浮点数,而是面对Carmera Class 操作
Class 定义
CLASS 定义 分为两部分
- (operations)头文件 用来声明 class 所提供的各种操作行为
- (implemenution)程序代码文件 用来包含这行为 操作内容
Class 使用
- 表头文件可以让程序知道 class定义
- C++ 是标准的输入输出库 名称为 iostream 包含了整套的class
- 至此 - 我们把定义好的 cout(读作 see out)对象写到终端机上
- output 运算符 << 可以将数据导出 像这样 cout << “Please enter your first name”
- 语句 是 C++ 程序的最小独立单元 以分号结束
using namespace std
- using 和 namespace 都是C++ 关键词 ,std 是标准程序库所驻之命名空间 namespace 名称 ,标准程序库 所提供的任何事物 ,诸如(string class 以及 cout cin 中两个 iostream 类对象)都会被封装在命名空间std内
- 命名空间 : 一种将程序库名称封装起来的方法 通过这种方法
- 可以避免应用程序发生命名 冲突
- (命名冲突 :应用程序中有两个不同的实体具有相同名称,导致程序无法区分彼此)
- 命名冲突是发生时,程序必须等到命名冲突获得决议(resloved)之后,才得以继续进行
- 命名空间是众多名称的可见范围内之间竖起的一道围墙
引入文件 :
若要在程序中使用string class 以及 cin cout 这两个 iostream 类对象
↑ 必须在含入 以及 头文件
- 还得让命名空间 sd 曝光 所谓:using directive
using namespace std 便是让命名空间中名称曝光的最简单方式
1.2 对象的定义与初始化 (Page:7)
数据赋型
为了定义对象 并赋予数据型别 ,对象名称可以是任何字母 数字 下划线
- 大小写 字母是有区分的
- 对象名称 不能以 数字为首
- 命名不能与程序语言 本身的雷同 :( delete 是语言的关键词,不能用于程序内命名)
每个对象 都隶属于某个特定的数据类别(对象名称设计得好,我们直接可 直接联想对象属性 )
数据型别决定了对象能含有的数值范围 同时也决定了对象应占多数内存空间
对象初始化
- 对象初始化有两种方法:
- 其中一种是 :以关键词指定类型 ,存储一个类型对象
- 另一种被称为 “ 构造函数语法 ”<