自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 C++深度解析--学习目录(正在更新)

【C++深度解析】1、C 到 C++ 的升级 【C++深度解析】2、C/C++ 中的 const 【C++深度解析】3、布尔类型和引用 【C++深度解析】4、内联函数分析 【C++深度解析】5、函数参数的扩展 【C++深度解析】6、函数重载 【C++深度解析】7、C++ 中的命名空间 【C++深度...

2020-02-13 22:45:32

阅读数 119

评论数 0

原创 C语言进阶剖析--学习目录

【C语言进阶剖析】1、基本数据类型 【C语言进阶剖析】2、有符号数与无符号数 【C语言进阶剖析】3、浮点数的秘密 【C语言进阶剖析】4、类型转换 【C语言进阶剖析】5、变量属性 【C语言进阶剖析】6、分支语句 【C语言进阶剖析】7、循环语句 【C语言进阶剖析】8、goto 和 void 分析 【C...

2020-01-07 22:48:17

阅读数 191

评论数 0

原创 Leetcode题解(更新中……)

算法思想 双指针 Two Sum II - Input array is sorted 排序 快速选择 堆排序 桶排序 荷兰国旗问题 贪心算法 二分查找 分治 搜索 BFS DFS Backtracking 动态规划 斐波那契数列 矩阵路径 数组区间 分割整数 最长递增子序列 最长公共子序列 0-...

2019-03-13 21:37:28

阅读数 343

评论数 1

原创 算法基础修炼指南(更新中...)

第一章 枚举 完美立方 生理周期 称硬币 熄灯问题(1) 熄灯问题(2) 第二章 递归(上) 求阶乘 汉诺塔 N皇后 逆波兰表达式求值 第三章 递归(下) 表达式求值 上台阶 放苹果 算24 第四章 二分算法 程序或算法的时间复杂度 二分查找的原理和实现 二分法求方程的根 例题1 找...

2019-02-14 21:55:57

阅读数 242

评论数 1

原创 剑指offer题解

剑指offer题解 考点 题目 数组 二维数组中的查找. 字符串 替换空格 链表 从尾到头打印链表 树 重建二叉树 栈和队列 用两个栈实现队列 查找和排序 旋转数组的最小数字 递归和循环 斐波那契数列 递归和循环 跳台阶 递归和循环 变态跳台阶 ...

2019-01-21 17:06:29

阅读数 393

评论数 2

原创 数据结构心法概要

章节 题目 串 模式匹配算法 树 二叉树的层序遍历 树 二叉排序树(BST)的创建,查找,插入,删除及最大最小结点 树 非递归实现二叉树遍历(附c++完整代码) 树 遍历二叉树的应用:输出二叉树中的叶子结点、求二叉树的高度 树 树的同构 树 平衡二叉树(AV...

2018-11-03 00:31:08

阅读数 2432

评论数 3

原创 【C++深度解析】38、被遗弃的多重继承

文章目录1 何为多重继承2 多重继承问题一3 多重继承问题二4 小结 1 何为多重继承 C++允许一个类拥有多个父类,这就是多重继承 子类有用所有父类的成员变量 子类继承所有父类的成员函数 子类对象可以当作任意父类对象使用 多重继承的语法规则: // 38-1.cpp #include<...

2020-02-22 21:48:27

阅读数 65

评论数 0

原创 【C++深度解析】37、C++ 中的抽象类和接口

文章目录1 抽象类1.1 为什么有抽象类1.2 抽象类与纯虚函数2 接口3 小结 1 抽象类 1.1 为什么有抽象类 在进行面向对象分析时,会有一些抽象的概念,如下图所示,矩形类和圆形类是形状类的子类,他们中都有求面积的函数。但是只有对具体的形状求面积才有意义,对概念上的”图形“求面积是没有意义的...

2020-02-21 21:41:53

阅读数 38

评论数 0

原创 【C++深度解析】36、C++对象模型(下:继承时的内存分布、虚函数表)

上一篇博客中我们讲到 class 与 struct 遵循相同的内存对齐规则,class 中的成员函数与成员变量分开存放,使用 sizeof 求解的是成员变量的内存大小,不包含成员函数,成员函数在代码段中。 继承后子类的大小怎么计算呢? 1 继承对象模型 子类是由父类成员叠加子类新成员得到的 ...

2020-02-20 21:50:14

阅读数 97

评论数 0

原创 【C++深度解析】35、C++对象模型(上:对象内存布局)

文章目录1 对象内存布局2 调用成员函数本质3 小结 1 对象内存布局 class 是一种特殊的 struct class 与 struct 遵循相同的内存对齐规则 class 中的成员函数与成员变量分开存放(每个对象有独立的成员变量,所有对象共享类中的成员函数) 编程实验:对象内存布局 //...

2020-02-19 22:34:15

阅读数 26

评论数 0

原创 【C++深度解析】34、多态与虚函数

文章目录1 函数重写回顾2 多态概念 1 函数重写回顾 父类中被重写的函数依然会继承给子类 子类中重写的函数将覆盖父类中的函数 通过作用域分辨符(::)可以访问父类中的函数 前一篇博客中我们知道,当使用父类的指针(引用)指向子类对象时,子类对象退化为父类对象,只能访问父类中的成员。也就是说父类...

2020-02-18 20:30:58

阅读数 62

评论数 0

原创 【C++深度解析】33、子类定义父类同名的函数或变量

文章目录1 子类定义父类同名成员2 子类定义父类同名函数3 小结 1 子类定义父类同名成员 子类中可以定义父类的同名成员 子类中的成员将隐藏父类中的同名成员 父类中的同名成员依然存在于子类中,需要用作用域分辨符(::)访问父类同名成员 // 33-1.cpp #include<iostr...

2020-02-17 00:19:51

阅读数 26

评论数 0

原创 【C++深度解析】32、继承中的构造与析构

文章目录1 1

2020-02-15 23:17:01

阅读数 19

评论数 0

原创 【C++深度解析】31、三种继承方式(public,protected,private)

C++ 中支持三种继承方式:公有继承,私有继承,保护继承 公有继承(public) 基类的 public 和 protected 成员的访问属性在派生类中保持不变,但基类的 private 成员不可直接访问。 派生类中的成员函数可以直接访问基类中的 public 和 protected 成员,但...

2020-02-13 22:39:40

阅读数 15

评论数 0

原创 【C++深度解析】30、继承的概念与意义

继指类之间的父子关系 子类是一种特殊的父类,拥有父类的所有属性和行为 子类对象可以当作父类对象使用 子类中可以添加父类中没有的方法和属性 子类对象可以直接初始化父类对象,可以直接赋值给父类对象 继承是 C++ 中代码复用的重要手段,通过继承,可以获得父类的所有功能,并且可以在子类中重写已有的功...

2020-02-13 15:50:00

阅读数 60

评论数 0

原创 【C++深度解析】29、int 与类类型之间的转换,类类型之间转换(转换构造函数,类型转换函数)

文章目录1 基本类型之间的转换2 普通类型与类类型之间的转换2.1 转换构造函数2.2 explicit 关键字3 小结 1 基本类型之间的转换 标准数据类型之间存在隐式的类型安全转换,在【C语言进阶剖析】4、类型转换中我们已经讲解了 C 语言中的强制类型转换和隐式类型转换。 安全的隐式类型转换如...

2020-02-10 23:39:24

阅读数 40

评论数 0

原创 【C++深度解析】27、不要重载逗号操作符

文章目录1 原生的逗号操作符2 重载逗号操作符 1 原生的逗号操作符 逗号表达式用于将多个子表达式连接为一个表达式 逗号表达式的值为最后一个子表达式的值 逗号表达式中的前 N-1 个子表达式可以没有返回值 逗号表达式按照从左向右的顺序计算每个子表达式的值 2 重载逗号操作符 ...

2020-02-09 22:54:28

阅读数 36

评论数 0

原创 【C++深度解析】28、重载前置++与后置++

需要栈空间存储临时变量,同时需要调用构造函数创建对象,调用析构函数销毁对象。

2020-02-09 15:10:39

阅读数 128

评论数 0

原创 【C++深度解析】26、逻辑操作符没有短路法则了?

文章目录1 原生的逻辑操作符2 重载逻辑运算符3 小结 1 原生的逻辑操作符 对于原生的逻辑 && 和 || 操作符,我们知道结果只有两种值(true 和 false),并且逻辑操作符有短路法则 实例分析:回顾原生的逻辑操作符 // 26-1.cpp #include<ios...

2020-02-08 23:36:06

阅读数 32

评论数 0

原创 【C++深度解析】24、赋值运算符与深拷贝

前面我们学习了操作符重载: 在【C++深度解析】20、操作符重载中讲了操作符可以重载为成员函数和非成员函数,并重载运算操作符:+,-,*,/ ,比较操作符:==,!= ,和赋值操作符:=,实现了复数类。 在【C++深度解析】22、数组操作符重载 中讲解了了重载数组访问操作符,并在数组类中重载数组访...

2020-02-07 22:26:10

阅读数 32

评论数 0

原创 【C++深度解析】23、函数对象分析(重载函数调用操作符())

文章目录1 不一样的斐波那契数列2 函数对象--重载函数调用操作符()3 小结: 1 不一样的斐波那契数列 我们现有有这样一个需求: 获取斐波那契数列每项的值 每调用一次返回一个值 函数可根据需要重复使用 使用方式如下所示: 我们可以通过使用静态变量的方法解决这个问题。代码如下: // 23...

2020-02-06 22:53:49

阅读数 48

评论数 0

原创 【C++深度解析】22、数组操作符重载

文章目录1 重载数组访问操作符2 完善数组类3 小结 前面一篇博客我们讲解了 string 类,string 类最大限度的考虑了 C 字符串的兼容性。那么类的对象怎么支持数组的下标访问呢? 我们回顾一下 C 语言中数组访问,下面几种写法是等价的: 1 重载数组访问操作符 重载数组访问操作符([]...

2020-02-05 21:54:24

阅读数 54

评论数 0

原创 【C++深度解析】21、C++中的字符串类

文章目录1 C++ 标准库1.1 重载左移操作符1.2 C++标准库2 C++ 中的字符串类2.1 字符串与数字的转换2.2 字符串循环右移3 小结 1 C++ 标准库 1.1 重载左移操作符 我们先来说一下重载左移操作符,下面看一段有趣的代码 #include<stdio.h> co...

2020-02-04 23:37:06

阅读数 37

评论数 0

原创 【C++深度解析】19、类中函数重载

文章目录1 重载回顾2 成员函数重载3 重载的意义4 小结 1 重载回顾 前面我们已经学习了函数重载,现在来回顾一下: C++通过函数名和函数参数确定函数调用,本质为相互独立的不同函数 无法通过函数名得到重载函数的入口地址 函数重载必然发生在同一作用域中 2 成员函数重载 类中的成员函数也可以...

2020-02-02 23:32:09

阅读数 36

评论数 0

原创 【C++深度解析】20、操作符重载

文章目录1 重载为成员函数2 重载为非成员函数3 小结 如果我们直接使用 “+” 完成复数的加法,要怎么做呢? 这就要使用操作符的重载功能了,操作符的重载是以函数的方式进行的。本质上是用特殊形式的函数扩展操作符的功能。 重载通过 operator 关键字定义特殊的函数,可以重载为类的成员函数和非成...

2020-02-01 11:58:36

阅读数 57

评论数 0

原创 【C++深度解析】18、被遗弃的友元

文章目录1 友元1.1 函数友元1.2 类友元1.3 友元的缺点2 小结 1 友元 友元发生在函数和类之间或者类与类之间 友元不是类的一部分 友元不受类中访问级别的限制,可以直接访问具体类的所有成员 友元关系是单向的,不能传递 在类中用 friend 关键字对函数或类进行声明 1.1 函数友元...

2020-01-31 21:57:19

阅读数 42

评论数 0

原创 【C++深度解析】17、二阶构造模式

文章目录1 构造函数 return 会怎么样?1.1 半成品对象2 二阶构造2.1 数组类改进3 小结 1 构造函数 return 会怎么样? 首先我们思考一个问题?在构造函数中执行 return 语句会发生什么?构造函数执行结束是否意味着对象构造成功? 编程实验:异常的构造函数 // 17-1....

2020-01-31 19:00:27

阅读数 44

评论数 0

原创 【C++深度解析】16、类的静态成员

文章目录1 静态成员变量2 静态成员函数3 小结 1 静态成员变量 静态成员变量属于整个类,所有对象共享类的静态成员变量 可直接通过对象名、类名访问 静态成员变量的生命期不依赖于任何对象 特性: 静态成员变量需要在类外单独分配空间,位于全局数据区 我们现在有这样一个需求,不使用全局变量的情...

2020-01-31 11:04:04

阅读数 36

评论数 0

原创 【C++深度解析】15、避免临时对象

文章目录1 临时对象的产生1.1 产生了临时对象1.2 问题解决2 编译器会减少临时对象3 小结 1 临时对象的产生 1.1 产生了临时对象 首先,我们先看一段代码, //15-1.cpp #include<stdio.h> class Test { public: Test(...

2020-01-30 20:06:19

阅读数 89

评论数 0

原创 【C++深度解析】14、对象的构造顺序

文章目录1 对象构造的顺序1.1 堆对象的构造顺序1.2 全局对象的构造2 小结 1 对象构造的顺序 局部对象:程序执行流到达对象的定义语句时进行构造 堆对象:当程序的执行流到达 new 语句时创建对象 全局对象:构造顺序是不确定的 1.1 堆对象的构造顺序 当程序执行流到达new语句时创建...

2020-01-30 10:40:34

阅读数 31

评论数 0

原创 【C++深度解析】13、初始化列表

文章目录1 类中的 const 变量2 列表初始化2.1 const 成员是只读变量3 小结 1 类中的 const 变量 类中的 const 成员变量该如何初始化? 类中的 const 变量不能在构造函数中进行赋值,因为 const 变量是只读变量,不能出现在赋值符号的左边。 // 13-1.c...

2020-01-29 22:31:12

阅读数 29

评论数 0

原创 【C++深度解析】12、构造函数、拷贝构造函数和析构函数

文章目录1 问题2 构造函数2.1 构造函数重载 1 问题 下面的类定义中成员变量 i 和 j 的初始值是多少? 在栈、堆上创建对象时,成员变量初始为随机值 在静态存储区创建对象时,成员变量初始为 0 值 全局变量位于静态存储区,局部变量在栈中,malloc 申请的在堆中,new 从自由存储...

2020-01-29 14:39:47

阅读数 91

评论数 0

原创 【C++深度解析】11、引入 class,类与封装的概念

文章目录1 类的关键字2 类与封装的概念3 类成员的作用域4 四则运算示例5 小结 1 类的关键字 struct 在 C 语言中已经有了自己的含义,C++ 要继续兼容 在 C++ 中提供了新的关键字 class 用于类定义 class 和 struct 用法完全相同。 class 和 stru...

2020-01-28 21:05:49

阅读数 38

评论数 0

原创 【C++深度解析】10、进阶面向对象

文章目录1 类和对象2 类之间的基本关系3 类的表示法4 小结 1 类和对象 类用于抽象的描述一类事物所特有的属性和行为 对象是一个具体的事物,拥有其所属类的所有属性,并且每个属性都是一个特有的值 2 类之间的基本关系 继承 从已存在类细分出来的类和原始类之间具有继承关系(is-a) 继承...

2020-01-28 10:49:20

阅读数 36

评论数 0

原创 【C++深度解析】9、const 常量?只读变量?

文章目录1 const 常量的判别准则1.1 编程实验2 小结 看了前面的关于 const 的内容,不知道是不是有疑问,const 什么时候为只读变量,什么时候是常量? 1 const 常量的判别准则 只有用字面量初始化的 const 常量才会进入符号表 使用其他变量初始化的 const 常量仍...

2020-01-27 14:19:24

阅读数 44

评论数 0

原创 【C++深度解析】8、C++ 中的类型转换

文章目录1 C 方式的强制类型转换1.1 C强制类型转换存在的问题2 新式类型转化3 小结 1 C 方式的强制类型转换 (Type)(Expression) Type (Expression) 直接看编程实验:粗暴的类型转换 // 8-1.c #include<stdio.h> t...

2020-01-27 09:30:20

阅读数 40

评论数 0

原创 【C++深度解析】7、C++ 中的命名空间

在 C 语言中只有一个全局作用域,C语言中得到所有全局标示符共享一个作用域,标示符之间可能发生冲突。 C++ 提出了命名空间的概念 命名空间将全局作用域分成不同的部分 不同命名空间中的标示符可以同名而不会发生冲突 命名空间可以嵌套 全局作用域也叫默认命名空间 C++ 中命名空间的定义 C++...

2020-01-26 19:50:36

阅读数 59

评论数 0

原创 【C++深度解析】6、函数重载

文章目录1 初识重载1.1 重载条件1.2 避免默认参数碰到函数重载1.3 编译器调用重载函数的准则2 函数重载的本质3 重载与指针4 C++ 和 C 相互调用5 小结 1 初识重载 函数重载指的是用同一个函数名定义不同的函数,当函数名和不同的参数搭配时函数的含义不同。 编程实验:函数重载初探 /...

2020-01-26 13:30:39

阅读数 39

评论数 0

原创 【C++深度解析】5、函数参数的扩展

文章目录1 函数参数的默认值1.1 函数默认参数的规则2 函数占位参数3 小结 1 函数参数的默认值 C++ 中可以在函数声明时为参数提供一个默认值,当函数调用时没有提供参数的值,则使用默认值 参数的默认值必须在函数声明中指定 问题:函数定义中是否可以出现参数的默认值?当声明和定义中的...

2020-01-22 23:57:39

阅读数 30

评论数 0

原创 【C++深度解析】4、内联函数分析

文章目录1 内联函数2 深入内联函数 C++ 中的 const 常量可以替代宏常数定义,那么 C++ 中是否有解决方案替代代码片呢? 1 内联函数 C++ 中使用 inline 关键字声明内联函数,推荐使用内联函数代替宏代码片段 C++ 编译器直接将内联函数体插入函数调用的地方 内联函数没...

2020-01-22 14:32:05

阅读数 50

评论数 0

提示
确定要删除当前文章?
取消 删除