摘要: 21 操作符重载 21.12 重载赋值运算符 拷贝构造器和拷贝赋值运算符的作用几乎相同,都是将一个对象复制到另一个对象。但是拷贝构造器初始化新的对象,而赋值运算符替换已有对象的内容 如果在拷贝前必须创建一个新对象,则使用拷贝构造器(包括按值传递和按值返回) 如果在拷贝前无需创建一个新对象,则使用赋值 阅读全文
posted @ 2024-07-22 22:23 dengkang1122 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 20 函数 20.1 函数指针 函数和变量一样,也是在内存中被分配了一块地址。因此,函数指针就是一个保存函数的内存地址的变量 函数也是有类型的,例如foo()这个函数的类型就是返回整数且不带参数 int foo(){return 5;} <<操作符不知道如何输出函数指针(因为有无数种可能的函数指针) 阅读全文
posted @ 2024-07-22 22:22 dengkang1122 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 14 类 14.9 构造器 当类有私有成员时,无法使用聚合初始化 构造器是一个特殊的成员函数,它在非聚合类的对象创建后自动调用 构造器不会创建对象:编译器在调用构造器之前就为对象分配了内存,然后在未初始化的对象上调用构造函数 构造器需要初始化对象的成员,因此不能为const const对象不能调用非 阅读全文
posted @ 2024-07-22 22:22 dengkang1122 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 12 复合类型:引用和指针 12.1 复合数据类型介绍 函数也是一种复合数据类型 12.2 左值和右值 表达式除了可以产生值和副作用,还可以计算为对象或函数 C++中的所有表达式都有两个属性:类型和值类别 表达式的类型就是计算表达式得出的值、对象、函数的类型 表达式的类型必须在编译时可确定,否则类型 阅读全文
posted @ 2024-07-22 22:21 dengkang1122 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 11 函数重载和函数模板 11.6 函数模板 编译器可以使用单个模板来生成一系列相关的函数或类,每个函数或类使用不同的类型 模板形参声明的作用域仅限于它后面的函数模板(或类模板) template <typename T> T max(T x, T y) { return (x < y) ? y : 阅读全文
posted @ 2024-07-22 22:20 dengkang1122 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 10 类型转换、类型别名、类型推导 10.4 窄化转换(收缩转换)、列表初始化和constexpr初始化器 窄化转换是一种不安全的数值转换:目标类型可能无法保存源类型的所有值 以下转换是窄化的: 浮点型转换成整型 从浮点型转换成等级更低的浮点型(除非被转换的值是constexpr并且在目标类型的范围 阅读全文
posted @ 2024-07-22 22:20 dengkang1122 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 7 作用域、生存期、链接 用户自定义命名空间和范围解析运算符 为了避免命名冲突,在尽可能小的作用域内定义标识符 一个命名空间要么在全局作用域内定义,要么在另一个命名空间内定义 使用范围解析运算符::可以告诉编译器去指定命名空间查找指定标识符(如果::前没有命名空间则表示全局命名空间) 如果使用标识符 阅读全文
posted @ 2024-07-22 22:19 dengkang1122 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 4 基本数据类型 4.1 基本数据类型介绍 比特、字节、内存地址 变量是一块可以存储信息的内存的名称 内存的最小单元是比特,但是每个内存地址对应一个字节 内存里的所有数据都是一串比特,所以我们使用数据类型来告诉编译器如何以某种有意义的方式来解释/翻译内存的内容 4.8 浮点数 默认情况下,浮点数字面 阅读全文
posted @ 2024-07-22 22:19 dengkang1122 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 2 函数和文件 2.9 命名冲突和命名空间 两个(或多个)同名函数(或全局变量)被引入到属于同一程序的不同文件中,这将导致链接器错误。 两个(或多个)同名函数(或全局变量)被引入到同一个文件中。这将导致编译器错误。 不同的作用域(例如命名空间)中可以有相同的标识符 只有声明和定义可以出现在命名空间的 阅读全文
posted @ 2024-07-22 22:18 dengkang1122 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 1 C++基础 1.1 语句和程序结构 语句是一条让计算机执行某个动作的指令,是C++语言中最小的独立计算单元 在高级语言(例如C++)中,一条语句可能编译成多条机器指令 大多数语句以;结尾 声明语句 跳转 表达式语句 复合语句 选择语句(条件语句) 迭代语句(循环语句) try代码块 函数是顺序执 阅读全文
posted @ 2024-07-22 22:16 dengkang1122 阅读(1) 评论(0) 推荐(0) 编辑