自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

老胡的博客

坚持学习,持续输出!

  • 博客(139)
  • 收藏
  • 关注

原创 【C++基础入门】44.C++中对象模型分析(上)

C++中对象模型深入分析

2023-10-30 00:07:56 279

原创 【C++基础入门】43.C++中多态的概念和意义

介绍C++中的多态

2023-10-26 00:48:12 273

原创 【C++基础入门】42.C++中同名覆盖引发的问题

同名覆盖引发的问题

2023-10-26 00:03:21 264

原创 【C++基础入门】41.C++中父子间的冲突

子类中是否可以定义父类中的同名成员?如果可以,如何区分?如果不可以,为什么?

2023-10-04 00:28:06 172

原创 【C++基础入门】40.C++中继承的构造与析构

介绍C++中子类对象的构造和析构

2022-10-07 22:14:08 985 1

原创 【C++基础入门】39.C++中不同的继承方式

介绍C++中的继承方式

2022-07-26 11:26:04 284 2

原创 【C++基础入门】38.C++中继承中的访问级别

文章目录一、值得思考的问题二、继承中的访问级别三、定义类时访问级别的选择四、组合与继承的综合实例五、小结 子类是否可以直接访问父类的私有成员? 下面来看一个继承中的访问级别: 输出结果如下,可以看到子类并不能直接访问父类的私有成员 下面来进行 protected 初体验: 输出结果如下,注意 p.mv = 1000; 和 c.mv = 10000; 都会报错,因为 protected 修饰的成员不能被外界直接访问,但是 c.a

2022-07-03 00:58:32 287 1

原创 【C++基础入门】37.C++中继承的概念和意义

文章目录一、生活中的例子二、惊艳的继承三、继承的意义四、小结一、生活中的例子组合关系∶整体与部分的关系 下面看一个组合关系的描述代码:#include <iostream>#include <string>using namespace std;class Memory{public: Memory() { cout << "Memory()" << endl...

2022-05-17 16:23:35 198

原创 【C++基础入门】36.C++中的类型转换函数

文章目录一、类型转换函数(上)1.再论类型转换2.问题3.再论构造函数4.另一个视角5.编译器的行为6.小结(上)二、类型转换函数(下)1.类型转换2.编译器的行为3.注意事项4.小结(下)一、类型转换函数(上)1.再论类型转换标准数据类型之间会进行隐式的类型安全转换 转换规则如下:2.问题普通类型与类类型之间能否进行类型转换?类类型之间能否进行类型转换?3.再论构造函数构造函数可以定义不同类型的参数 参数...

2022-05-17 15:32:40 2190

原创 【C++基础入门】35.C++中的前置操作符和后置操作符

文章目录一、值得思考的问题二、意想不到的事实三、++ 操作符重载四、真正的区别五、小结一、值得思考的问题下面的代码有没有区别?为什么?二、意想不到的事实现代编译器产品会对代码进行优化 优化使得最终的二进制程序更加高效 优化后的二进制程序丢失了 C/C++ 的原生语义 不可能从编译后的二进制程序还原 C/C++ 程序三、++ 操作符重载++ 操作符可以重载吗?如何区分前置++ 和后置++?++ 操作符可以被重载 全局函数和成员函数均...

2022-05-04 14:35:25 1861

原创 【C++基础入门】34.C++中的逗号操作符

文章目录一、逗号操作符二、重载逗号操作符三、小结一、逗号操作符逗号操符( , )可以构成逗号表达式 逗号表达式用于将多个子表达式连接为一个表达式 逗号表达式的值为最后一个子表达式的值 逗号表达式中的前 N-1 个子表达式可以没有返回值 逗号表达式按照从左向右的顺序计算每个子表达式的值 二、重载逗号操作符在C++ 中重载逗号操作符是合法的 使用全局函数对逗号操作符进行重载 重载函数的参数必须有一个是类类型 重载函数的返回值类型必须是引用问题的本.

2022-05-04 10:03:39 2609

原创 【C++基础入门】33.C++中的逻辑操作符

文章目录一、逻辑运算符的原生语义二、重载逻辑操作符三、小结一、逻辑运算符的原生语义操作数只有两种值( true和 false ) 逻辑表达式不用完全计算就能确定最终值 最终结果只能是 true 或者 false二、重载逻辑操作符逻辑操作符可以重载吗?重载逻辑操作符有什么意义?问题的本质分析C++ 通过函数调用扩展操作符的功能 进入函数体前必须完成所有参数的计算 函数参数的计算次序是不定的 短路法则完全失效逻辑操作符重载后无法完...

2022-05-03 20:37:28 159

原创 使用 VScode 连接远程 Linux 服务器

文章目录一、安装 OpenSSH二、安装 Remote - SSH三、配置 Remote-SSH四、连接服务器五、实例测试六、下次打开的操作一、安装 OpenSSHOpenSSH 可以让你在终端使用 ssh 命令,Windows10 一般自带。可以通过以下方式检查是否安装 OpenSSH:按下快捷键 Win + X,选择 Windows PoweShell(管理员),输入以下指令:Get-WindowsCapab......

2022-05-03 15:55:02 6791 2

原创 Xshell连接服务器编写代码(windows+Xshell+阿里云主机)

文章目录一、云服务器购买1.腾讯云2.华为云3.阿里云二、云主机配置三、Xshell安装及连接云服务器四、安装系统后的环境准备1.添加普通用户2.修改主机实例名3.配置sshd4.GitHub 访问优化5.配置Vim(使用新添加的用户操作)6.zsh 的安装及配置7.ctags 安装与配置8.安装 glibc-doc五、实例测试一、云服务器购买1.腾讯云 腾讯云链接,这是开发者专属扶持活动,,镜像选择 ubuntu.....

2022-05-01 17:13:17 2931 2

原创 【C++基础入门】32.C++中的智能指针分析

文章目录一、内存泄漏--永恒的话题二、深度思考三、智能指针分析四、小结一、内存泄漏--永恒的话题动态申请堆空间,用完后不归还 C++ 语言中没有垃圾回收的机制 指针无法控制所指堆空间的生命周期下面看一段内存泄漏的代码:#include <iostream>#include <string>using namespace std;class Test{ int i;public: Test(int ...

2022-04-30 17:03:59 103

原创 【C++基础入门】31.C++中的经典问题解析(三)

文章目录一、关于赋值的疑问二、面试小问题三、关于 string 的疑问四、小结一、关于赋值的疑问什么时候需要重载赋值操作符?编译器是否提供默认的赋值操作?编译器为每个类默认重载了赋值操作符 默认的赋值操作符仅完成浅拷贝 当需要进行深拷贝时必须重载赋值操作符 赋值操作符与拷贝构造函数有相同的存在意义下面看一段 默认赋值操作符重载的示例:问题分析一般性原则重载赋值操作符,必然需要实现深拷贝!!!所以之前写的数组类可以做优化...

2022-04-29 10:44:26 241

原创 keil 报错解决 Loading PDSC Debug Description failed forSTMicroelectronics STM32xxxx

当我们导入新的包时,可能会出现下面的报错。会提示报错的路径:所以就需要去找对应的路径找到后先将只读属性去掉。 然后简单点,就用记事本打开: 然后 ctrl + f,点出查找界面,输出 Message,一查就出来了,然后把Message(2, "Not a genuine ST Device! Abort connection.......

2022-04-27 21:25:00 10085 20

原创 【C++基础入门】30.C++中的函数对象分析

文章目录一、客户需求二、存在的问题三、解决方案四、函数对象五、小结一、客户需求编写一个函数 函数可以获得斐波那契数列每项的值 每调用一次返回一个值 函数可根据需要重复使用 下面来看第一个解决方案:#include <iostream>using namespace std;int fib(){ static int a0 = 0; static int a1 = 1; int r...

2022-04-26 16:26:03 202

原创 【C++基础入门】29.C++中数组操作符的重载

文章目录一、字符串类的兼容性二、重载数组访问操作符三、小结一、字符串类的兼容性 问题:string 类对象还具备 C 方式字符串的灵活性吗?还能直接访问单个字符吗?string 类最大限度的考虑了 C 字符串的兼容性 可以按照使用 C 字符串的方式使用 string 对象下面看一个用 C 方式使用 string 类的示例:#include <iostream>#include <string>using ...

2022-04-26 15:25:55 422

原创 【C++基础入门】28.C++中的字符串类

文章目录一、历史遗留问题二、解决方案三、标准库中的字符串类四、字符串循环右移五、小结一、历史遗留问题C 语言不支持真正意义上的字符串 C 语言用字符数组和一组函数实现字符串操作 C 语言不支持自定义类型,因此无法获得字符串类型二、解决方案从 C 到 C++ 的进化过程引入了自定义类型 在 C++ 中可以通过类完成字符串类型的定义三、标准库中的字符串类C++ 语言直接支持 C 语言的所有概念 C++ 语言中没有原生的字符串类型 C++ 标准库提供了 str

2022-04-25 15:12:29 940

原创 【C++基础入门】27.C++中的标准库初探

文章目录一、有趣的重载二、C++ 标准库三、小结一、有趣的重载操作符 << 的原生意义是按位左移,例:1 <<2; 其意义是将整数 1 按位左移2位,即:0000 0001 → 0000 0100 现在来尝试一下重载左移操作符,将变量或常量左移到一个对象中!#include <stdio.h>const char endl = '\n';class Console{public: Console&amp...

2022-04-25 10:13:47 207

原创 【C++基础入门】26.C++中完善的复数类

文章目录一、复数类应该具有的操作二、利用操作符重载三、注意事项四、小结一、复数类应该具有的操作运算:+,- ,*,/ 比较:== ,! = 赋值:= 求模:modulus二、利用操作符重载统一复数与实数的运算方式 统—复数与实数的比较方式 下面来看一下复数类的实现:Complex.h:#ifndef _COMPLEX_H_#define _COMPLEX_H_class Complex{ doubl...

2022-04-23 15:13:27 742

原创 【C++基础入门】25.C++中操作符重载的概念

文章目录一、需要解决的问题二、操作符重载三、小结一、需要解决的问题下面的复数解决方案是否可行? 下面看一下复数的加法操作:#include <stdio.h>class Complex { int a; int b;public: Complex(int a = 0, int b = 0) { this->a = a; this->b = b; } ...

2022-04-23 14:45:12 99

原创 【C++基础入门】24.C++类中的函数重载

文章目录一、函数重载回顾二、类中的重载三、重载的意义四、小结一、函数重载回顾函数重载的本质为相互独立的不同函数 C++ 中通过函数名和函数参数确定函数调用 无法直接通过函数名得到重载函数的入口地址 函数重载必然发生在同一个作用域中二、类中的重载类中的成员函数可以进行重载 构造函数的重载 普通成员函数的重载 静态成员函数的重载 问题:全局函数,普通成员函数以及静态成员函数之间是否可以构成重载?注意事项 重载函数的本质为多个不同的...

2022-04-23 13:11:26 586

原创 【C++基础入门】23.C++中的友元

文章目录一、友元的概念二、友元的用法三、友元的语法四、友元的尴尬五、注意事项六、小结一、友元的概念什么是友元? 友元是 C++ 中的一种关系 友元关系发生在函数与类之间或者类与类之间 友元关系是单项的,不能传递 二、友元的用法在类中以 friend 关键字声明友元 类的友元可以是其它类或者具体函数 友元不是类的一部分 友元不受类中访问级别的限制 友元可以直接访问具体类的所有成员三、友元的语法在类中用 friend 关键字对函数或类

2022-04-22 11:11:49 537

原创 【C++基础入门】22.C++中的二阶构造模式

文章目录一、构造函数的回顾二、半成品对象三、二阶构造四、小结一、构造函数的回顾关于构造函数 类的构造函数用于对象的初始化 构造函数与类同名并且没有返回值 构造函数在对象定义时自动被调用 问题 如何判断构造函数的执行结果? 在构造函数中执行 return 语句会发生什么? 构造函数执行结束是否意味着对象构造成功? 答案:构造函数 只提供自动初始化成员变量的机会 不能保证初始化逻辑一定成功 执行 return 语句后构造...

2022-04-21 21:09:36 326

原创 【C++基础入门】21.C++中类的静态成员函数

文章目录一、未完成的需求二、问题分析三、静态成员函数四、小结一、未完成的需求统计在程序运行期间某个类的对象数目 保证程序的安全性(不能使用全局变量) 随时可以获取当前对象的数目 在【C++基础入门】20.C++中类的静态成员变量中每次打印对象的个数时,都需要依赖于一个对象名,下面看一个代码:#include <stdio.h>class Test{public: static int cCount;public: T...

2022-04-18 23:15:50 2009

原创 【C++基础入门】20.C++中类的静态成员变量

文章目录一、成员变量的回顾二、新的需求三、静态成员变量四、小结一、成员变量的回顾通过对象名能够访问 public 成员变量 每个对象的成员变量都是专属的 成员变量不能在对象之间共享二、新的需求统计在程序运行期间某个类的对象数目 保证程序的安全性(不能使用全局变量) 随时可以获取当前对象的数目 下面来看示例:#include <stdio.h>int gCount = 0; class Test{private: ...

2022-04-18 22:22:26 716

原创 【C++基础入门】19.C++中经典问题解析(二)

一、关于析构的疑问 问题一:程序中存在多个对象的时候,如何确定这些对象的析构顺序?单个对象创建时构造函数的调用顺序 调用父类的构造过程 调用成员变量的构造函数(调用顺序与声明顺序相同) 调用类自身的构造函数 析构函数与对应构造函数的调用顺序相反。多个对象析构时 析构顺序与构造顺序相反 关于析构的答案 对于栈对象和全局对象,类似于入栈与出栈的顺序,最后构造的对象被最先析构!!! 堆对象的析构发生在使用delete 的时候...

2022-04-18 21:29:30 466

原创 【C语言数据结构】1.顺序表

目录一、顺序表的结构定义二、顺序表的结构操作1.初始化2.插入操作3.删除操作4.扩容操作5.释放操作6.输出三、示例 编程环境为 ubuntu 18.04。 顺序表需要连续一片存储空间,存储任意类型的元素,这里以存储 int 类型数据为例。一、顺序表的结构定义size 为容量,length 为当前已知数据表元素的个数typedef struct Vector{ int *data; ...

2022-04-18 16:05:20 1099 1

原创 Vscode 配置 matlab 环境

文章目录一、插件安装与配置二、实例测试 在文章的开始,说明一下我所使用的是matlab 2016a + vscode,系统为 win10。 vscode 可以去官网下载:VSCode中文网 - Visual Studio Code中文官网 VS Code编辑器中文网站 matlab 没有的话,我推荐一个微信公众号【火耳软件安装】,去那里下载 matlab,不用去某宝或者某鱼上面买安装包。一、插件安装与配置Matlab(用于高亮、代码提示.........

2022-04-15 21:50:07 14298 31

原创 【C++基础入门】18.C++中的临时对象

文章目录一、初探临时对象1.问题2.思考3.答案二、编译器的行为三、小结一、初探临时对象1.问题下面的程序输出什么?为什么?下面编写程序进行实验:#include <stdio.h>class Test { int mi;public: Test(int i) { mi = i; } Test() { Test(0); } void print() {

2022-04-15 16:42:36 875

原创 【C语言进阶剖析】45.C语言中的函数设计原则

文章目录一、函数设计原则二、总结一、函数设计原则函数从意义上应该是一个独立的功能模块 函数名要在一定程度上反映函数的功能 函数参数名要能够体现参数的意义 尽量避免在函数中使用全局变量 当函数参数不应该在函数体内部被修改时,应加上 const 声明 如果参数是指针,且仅作输入参数,则应加上 const 声明,如下:不能省略返回值的类型 如果函数没有返回值,那么应声明为 void 类型 对参数进行有效性检查 对于指针参数的检查尤为重要 不要返回指向“栈内存.

2022-04-15 08:00:00 575

原创 【C语言进阶剖析】44.C语言中的递归函数分析

文章目录一、递归的数学思想二、递归函数三、递归函数设计技巧四、递归函数设计示例一五、递归函数设计示例二六、递归函数设计示例三七、小结一、递归的数学思想递归是一种数学上分而自治的思想 递归需要有边界条件 当边界条件不满足时,递归继续进行 当边界条件满足时,递归停止 递归将大型复杂问题转化为与原问题相同但规模较小的问题进行处理。二、递归函数函数体内部可以调用自己 递归函数 函数体中存在自我调用的函数 递归函数是递归的数学思想在...

2022-04-15 07:30:00 240

原创 【C语言进阶剖析】43.C语言中的函数与宏分析

文章目录一、函数与宏二、宏的妙用三、小结一、函数与宏宏是由预处理器直接替换展开的,编译器不知道宏的存在 函数是由编译器直接编译的实体,调用行为由编译器决定 多次使用宏会导致最终可执行程序的体积增大 函数是跳转执行的,内存中只有一份函数体存在 宏的效率比函数要高,因为是直接展开,无调用开销 函数调用时会创建活动记录,效率不如宏 下面看一个函数与宏的示例,先看这个程序:#include <stdio.h>#define RESET(p, l...

2022-04-14 16:22:42 203

原创 【C语言进阶剖析】42.C语言中函数参数的秘密

文章目录一、函数参数二、程序的顺序点三、小结(上)四、调用约定五、可变参数六、可变参数的限制七、小结(下)一、函数参数函数参数在本质上与局部变量相同在栈上分配空间 函数参数的初始值是函数调用时的实参值 函数参数的求值顺序依赖于编译器的实现 下面看一个函数参数的求值顺序的示例:#include <stdio.h>int func(int i, int j){ printf("i = %d, j = %d\n", i...

2022-04-14 13:06:35 764

原创 【C语言进阶剖析】41.C语言中函数的意义

文章目录一、函数的由来二、模块化程序设计三、C 语言中的模块化四、面向过程的程序设计五、声名和定义六、小结一、函数的由来二、模块化程序设计三、C 语言中的模块化四、面向过程的程序设计面向过程是一种以过程为中心的编程思想 首先将复杂的问题分解为一个个容易解决的问题 分解过后的问题可以按照步骤一步步完成 函数是面向过程在 C 语言中的体现 解决问题的每个步骤可以用函数来实现五、声名和定义声明的意义在于告诉编译器程序单元的存在 定

2022-04-13 10:29:50 379

原创 【C语言进阶剖析】40.C语言中的内存操作经典问题分析

文章目录一、野指针二、野指针的由来三、基本原则四、小结(上)五、常见的内存错误六、内存操作的规则七、小结(下)一、野指针指针变量中的值是非法的内存地址,进而形成野指针 野指针不是 NULL 指针,是指向不可用内存地址的指针 NULL 指针并无危害,很好判断,也很好调试 C 语言中无法判断一个指针所保存的地址是否合法二、野指针的由来局部指针变量没有被初始化 指针所指向的变量在指针之前被销毁 使用已经释放过的指针 进行了错误的指针运算 进行了错误的强制

2022-04-12 15:03:47 180

原创 【C语言进阶剖析】39.C语言程序中的内存布局

文章目录一、程序文件的一般布局二、程序与进程三、程序文件的一般布局四、程序的内存布局五、程序术语的对应关系六、小结一、程序文件的一般布局不同代码在可执行程序中的对应关系二、程序与进程程序和进程不同 程序是静态的概念,表现形式为一个可执行文件 进程是动态的概念,程序由操作系统加载运行后得到进程 每个程序可以对应多个进程 每个进程只能对应一个程序 面试中的小问题 包含脚本代码的文本文件是一种类型的可执行程序吗?如果是,对应什么样的进程呢?

2022-04-11 22:55:40 185

原创 【C语言进阶剖析】38.C语言中的栈、堆和静态存储区

文章目录一、程序中的栈二、函数的调用过程三、函数调用的栈变化四、函数调用栈上的数据五、程序中的堆六、程序中的静态存储区七、小结一、程序中的栈栈是现代计算机程序里最为重要的概念之一 栈在程序中用于维护函数调用上下文 函数中的参数和局部变量存储在栈上栈保存了一个函数调用所需的维护信息 参数 返回地址 局部变量 调用上下文 二、函数的调用过程每次函数调用都对应着一个栈上的活动记录 调用函数的活动记录位于栈的中部 被调函数的活动记录.

2022-04-11 22:18:32 2481 5

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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