C++的修仙之旅 LV0 - 《Essential C++》

这篇博客是根据《Essential C++》的学习笔记,涵盖了C++编程的基础,包括数据类型、运算符、控制结构、类与对象、泛型编程和面向对象编程等核心概念。博客介绍了C++程序的组成、如何编写C++程序,强调了面向过程和面向对象编程的风格,并探讨了模板和异常处理的重要性。
摘要由CSDN通过智能技术生成

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 是语言的关键词,不能用于程序内命名)

每个对象 都隶属于某个特定的数据类别(对象名称设计得好,我们直接可 直接联想对象属性 )
数据型别决定了对象能含有的数值范围 同时也决定了对象应占多数内存空间

对象初始化
  • 对象初始化有两种方法:
    • 其中一种是 :以关键词指定类型 ,存储一个类型对象
    • 另一种被称为 “ 构造函数语法 ”<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

-ATAO----

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值