- 博客(8)
- 收藏
- 关注
原创 C++学习-虚继承
在 Person.h 中给 Person 的构造函数增加默认值,比如「Person(const string &name = “shiyanlou”);在 HighStudent 的构造函数中调用 Person 的构造函数,即 …: Person(name), Student(name,age) …这里的基类1的构造函数初始化需要通过4进行,所以基类1的初始化路径为7->4->1,而不能直接7->1.要注意的是,在菱形继承中,基类的初始化只有两种方式。多重继承和菱形继承结合。
2024-03-26 19:58:23
159
1
原创 C++学习-对象数组
强调堆上申请空间与释放空间的问题,请注意一下代码与之前的异同之处,在销毁对象数组时使用的是 delete point;// 如果是自定义类作为参数时,建议使用引用的方式传入参数,如果该参数在函数中无需修改且没有输出,建议加上 const。来释放数组,会导致未定义行为(undefined behavior),因为这只能用于释放单个对象的内存,而非整个数组。系统自动销毁栈上对象数组,并且销毁对象数组时,每一个对象析构函数都会被执行。实例化对象数组时,每一个对象的构造函数都会被执行。
2024-03-20 11:32:25
131
1
原创 C++学习记录-指针
因为第一种是在定义变量时指定的,int *p=&po1的意思是指定指针变量p,赋值&po1给p。//指针变量 p 指向变量 po1 的地址。cout << "获取指针所指变量的值: "<<*p<<endl;cout << "获取指针的内存地址: "<<p<<endl;cout << "获取p的内存地址: "<<&p<<endl;//指针变量 p 指向变量 po1 的地址。p 表示指针变量 p 本身,即指针 p 所存储的内存地址。*p 表示指针 p 所指向的变量或对象的值。
2024-03-19 15:24:59
305
1
原创 stm32f103ze6初学记录(使用寄存器点亮LED)
1、打开f103霸道原理图,查看LED对应端口2、发现LED_G对应为PB0,即GPIOB的第0位,在STM32中文参考手册中的存储器映像查找GPIOB地址。发现其位于APB2总线下,起始地址为0x40010C00。3、因为是点亮LED,所以需要输出数据,找到端口输出数据寄存器。记录地址偏移为0Ch,只需让第一位置0即可,因为观察LED原理图可知,此处置0电流才能导通。
2023-07-24 19:55:58
223
原创 stm32初学记录(寄存器)
32位,16位,在调用结构体元素时应该是默认这些元素对应的就是寄存器,因为结构体中定义的元素占用空间正好是一个寄存器占用的空间。图中显示的是GPIO的外设地址,可以看到GPIOB中的寄存器地址每个间隔4字节(也就是32位)。这里可以看到GPIOx指向的是GPIOH_BASE,定义的结构体中元素占了。2、无标记从靠近stm32字样的边开始逆时针引脚为1。1、有黑洞标记从黑洞开始逆时针引脚为1。
2023-07-23 21:17:07
61
原创 【Python报错解决】from PIL import Image 提示调用_imaging失败,已解决
在pycharm中安装PILLOW库后运行以下代码from PIL import Imagef = Image.open(‘3d.PNG’)f.show()f.close()运行文件夹下已经存放名为3d的PNG文件但是运行后报错如下D:\python\codes\Scripts\python.exe D:/python/codes/demo1.pyTraceback (most recent call last):File “D:\python\codes\demo1.py”, line
2021-03-09 19:17:50
3329
原创 Python字符串使用eval函数时关于+和*的疑惑
a=eval(‘2’+‘5*2’)print(a)在此代码中数字均为字符串类型,那么字符串类型的结合顺序在默认情况下都是从左向右的吗?还是说使用eval函数的情况下先合并字符串再进行正常的加减乘除,那么为什么不将2直接转换为有效数字然后再进行加减乘除呢?又或是eval函数将’2’+'5看作了字符串表达类型,然后先进行了合并将合并后的字符串转换为有效数字,然后再进行运算?求助解答,非常感谢!...
2021-03-03 16:07:45
1826
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人