- 博客(33)
- 收藏
- 关注
原创 C++:多态
很明显,d中Base的虚表和b中虚表的Fun1不一样了,而Fun2还是一样的,原因是Derive对Func1进行了重写(覆盖),而没有重写Func2,而Func3不是虚函数,所以没有存放在虚表。那么现在多态的原理呼之欲出了,当基类指针或引用指向基类时,在虚表中找到的是基类的虚函数,即没有被重写的虚函数;也就是说,父类的指针或者引用可以指向父类,也可以指向子类,指向父类时调用父类的虚函数,指向子类时调用子类的虚函数,如果调用的不是虚函数,则会调用父类的成员函数。即基类虚函数返回基类对象的指。
2023-11-23 11:47:02
151
原创 C语言数组详解
举个例子,我们通过int arr[10] 这条语句创建一个包含十个整形变量的整形数组,同样的,如果我们需要创建其他类型的数组,比如字符数组,只需要根据需要修改类型名和元素个数即可。
2023-08-12 14:20:04
66
1
原创 字符数组初始赋值
这样做存在的问题是,将数组空间所有位置都用字符占用了,没有'\0'的位置,那么使用printf函数找不到'\0'就会一直打印,打印到数组空间外面就会打印乱码。由于字符串本身暗含'\0',所以vs能够检测出超过数组范围了,所以会报错。
2023-05-29 20:05:07
59
1
原创 scanf浮点数格式输入错误
定义双精度浮点数变量a,以单精度浮点数格式将输入的数据赋值给a并打印。结果显然是有问题的,具体原理未知。修改后以双精度浮点数格式读入数据。
2023-05-22 09:57:57
479
2
原创 scanf函数读入数据时可能存在的错误
这样存在的问题是:第一个scanf函数将“2”读入后,不会将紧跟着的空格读取 (因为读取的是整形),遇到空格结束第一个scanf,空格留在输入流里面。但是紧接着的scanf函数需要读入一个字符变量,而读取字符变量时,scanf能够吸收空格或者回车,当作字符使用,所以此处的变量b里储存的是空格字符。显然,此处变量b储存的是回车。过程:变量a接收“2”后多余了一个回车,然后变量b将回车读入,并且回车又是第二个scanf结束的标志,所以在输入一个“2”后按回车程序立即结束。输入的整形和字符中间用空格分开。
2023-05-18 20:32:34
191
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人