
游戏筑基开发之测试篇
文章平均质量分 66
该栏主要是展示博主日常关于C/C++所学知识的自我测试,知识点仅供参考。
ufgnix0802
这个作者很懒,什么都没留下…
展开
-
C++常见知识点2
答:防止内存泄漏,正确析构指向派生类实例的基类指针。答:是的,virtual修饰符会被隐形继承的,virtual可加可不加,子类覆盖它的函数不加virtual也能实现多态。答:错误,编译器默认生成构造函数。答: 隐藏实现细节,使得代码能够模块化;扩展代码模块,实现代码重用; 接口重用:为了类在继承和派生的时候,保证使用家族中任一类的实例的某一属性时的正确调用。答:构造函数的调用顺序:基类构造函数—对象成员构造函数—派生类(当前类)构造函数;析构函数的调用顺序与构造函数相反。答:引用必须被初始化,指针不必原创 2022-06-29 22:12:53 · 534 阅读 · 0 评论 -
C++知识点(容易遗忘点)
C++知识点(容易遗忘点)什么是命名空间?作用是什么? 为了解决相同作用域下的命名问题,在C、C++、C#等语言中,都有命名空间的概念,这是为了防止不同人编写类库发生命名冲突而设计的,命名空间可以使变量、函数名称、类命名作用在本空间内,而其它空间可以使用同样的名称。内联函数是什么?有什么注意事项。内联函数建议编译器采用,编译器可以不接受。内联函数是空间换时间。内联函数声明和定义必须一起,否则无效。在类的内部定义的函数默认是内联函数。如果你不添加内联关键字,编译器也可以自动转换为内联。原创 2022-05-26 20:38:04 · 518 阅读 · 1 评论 -
游戏开发之测试篇3(C++)
游戏开发之测试篇3(C++)1.声明和定义有什么区?答:声明变量不分配内存空间,定义变量分配内存空间。声明可以让编译器在该声明之后引用该声明时合法,能通过编译。定义包含声明,同时需要分配内存空间。2.虚析构函数的作用?答:虚析构函数可以防止内存泄露,正确析构指向派生类示例的基类指针。3.如何让局部变量具有全局性?答:在局部变量附加修饰关键字static。4.new、delete、malloc、free的关系答:delete会调用的对象的析构函数且和new对应(new调用对象的构原创 2021-09-14 20:03:13 · 343 阅读 · 0 评论 -
游戏开发之测试篇2(C++)
游戏开发之测试篇2(C++)1.以下prim函数的功能是分解质因数。括号内的内容应该为?void prim(int m, int n) { if (m >= n) { while ( ) n++; ( ); prim(m, n); cout << n << endl; } }答:m%n,m/=n。2.X的值是多少,为什么?enum XXX{原创 2021-09-07 00:53:39 · 722 阅读 · 0 评论 -
游戏开发之测试篇(C++)
游戏开发之测试篇(C++)1.计算下列结构体的内存大小union C { char a[5]; int b[5]; double c[5]; };struct D { char a[5]; int b[5]; double c[5]; };答: 40个字节;8+24+40 = 72个字节(double 不管是32位还是64位操作系统都是占8个字节!)。2.C和C++ const的区别答:C语言中const限制变量具有不变性的时候,是一个伪常量。C++中const限定变量具有不变性的时候是一个原创 2021-08-23 22:17:00 · 455 阅读 · 0 评论 -
C语言关于一个作用域内的局部变量反复申请同一个栈区内存空间的事儿
C语言关于一个作用域内的局部变量反复申请同一个栈区内存空间的事儿情形如下:#include <stdio.h>#include <string.h>int main(){ char *temp = NULL; char *temp1 = NULL; int count = 0, bFlag = 1; while (++count != 3) { for (int i = 0;; i++) { char buffer[20]; if (bFlag原创 2021-08-12 22:33:52 · 779 阅读 · 0 评论 -
二维数组及以上维度的数组,本质是一维数组?(C语言)
二维数组及以上维度的数组,本质是一维数组?(C语言) 任意高纬度的数组,本质都是可以转为为一维数组来看待。示例如下:#include <stdio.h>void PrintMap(int *map){ for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { //当前行 * 总列数 + 当前列 printf("%4d", map[i * 10 + j]); } print原创 2021-08-06 21:35:02 · 925 阅读 · 0 评论 -
关于数组越界(内存泄漏)的那点事儿(C语言)
关于数组越界(内存泄漏)的那点事儿(C语言) 数组越界在C语言是一个很常见的问题,但是也正是因为它很常见,有时候也会出现一些不可思议,难以理解的情况,就像下面这样。情形如下:如果难以理解,我们来打印一下数组a每个节点的地址以及num的地址。如下: 我们可以看到,当数组a循环到a[12]的时候与num的地址完全相同。从而覆盖了num已有的值12,变成a[ ] = 0的值,即0。重新累加。 我们思考可以发现,此时num跟a[9]相差8个字节的偏移量。那么我们会想,不管num是任意数据类型,原创 2021-08-05 22:21:48 · 1339 阅读 · 0 评论 -
游戏筑基开发之测试篇2(C语言)
游戏筑基开发之测试篇21.const的作用和例子? 修饰变量,说明该变量不可以被改变; cosnt int; 修饰指针 常量指针(cosnt int ) 指针常量(int const)2.使用指针时发生的错误有哪些? 数组越界、空指针、野指针。3.函数参数传递,值传递和址传递的区别 值传递和址传递,本质是一样的,都会有新的内存空间生成(在栈区) 址传递保存的是地址,可以修改函数外部的值,与实参共享同一片内存。4.二级指针++和一级指针++有什么区别 在32位操作系统下:原创 2021-08-03 00:06:32 · 237 阅读 · 0 评论 -
游戏筑基开发之测试篇(C语言)
C语言测试1.什么是预编译,预编译的用处是什么? 预编译是在编译前进行的(源文件=>预编译=>编译=>链接),它的作用是把宏和预编译头(#开头称为预编译头)进行展开替换。2.static 关键字的作用 ①static 为全局变量和函数限制在本文件内使用 ②static局部变量:生命周期为全局(结束于程序停止运行),但是作用域为局部(只能局部调用),并且只会初始化一次(例如:在函数调用结束后,它不释放仍然保留原值)3.sizeof 是什么,作用在哪个阶段? 它是关键字,原创 2021-07-12 21:19:48 · 176 阅读 · 0 评论