【360】校招研发笔试
友元函数是什么?
答:类的友元函数是定义在类外部,但有权访问类的所有私有成员和保护成员。尽管友元函数的原型有在类的定义中出现过,但友元函数并不是成员函数。详细内容可以参考大神博文友元函数介绍。
说出3种常见的黑盒测试方法
答:错误推测法、场景设计法、判定表法、边界值分析法、等价类划分法。详细内容可以参考大神博文黑盒的9种方法介绍。
websock 和sse是什么?
答:
- SSE:server send event。服务端发送事件,指服务端主动给客户端推送消息(单向);
- WebSocket:客户端和服务端实现双工通信(双向),多用于即时通信。
详细内容可以参考大神博文SSE和WebSocket。
360校招研发笔试部分的记录就先到这!接下来,是一些整理的c++要点概要!
函数重载
C++函数重载的判断依据
- 函数形参的个数;
- 函数形参的类型;
- 形参的顺序;
- 不能把返回值作为函数重载的条件, 原因是编译器在编译时不会去判断函数的返回类型,
函数只有调用后, 编译器才会去验证返回类型, 所以返回值不能作为函数重载的依据; - 常函数 const 可以作为函数重载判断依据, 原因: 重载[]运算符时, 有没有 const 的区别
是: 有 const 只读, 没有 const 读写都可以。
结构体
- 第一种是最基本的结构体定义, 其定义了一个结构体 A。
struct A { int a;};
- 第二种则是在定义了一个结构体 B 的同时定义了一个结构体 B 的变量 m。
struct B { int b;}m;
- 第三种结构体定义没有给出该结构体的名称, 但是定义了一个该结构体的变量 n, 也就是说,
若是想要在别处定义该结构体的变量是不行的, 只有变量 n 这种在定义结构体的同时定义变
量才行。
struct { int c;}n;
- 第四种结构体定义在第一种结构定义的基础上加了关键字typedef, 此时我们将struct D{int d}
看成是一个数据类型, 但是因为并没有给出别名, 直接用 D 定义变量是不行的。 如 D test; ,
不能直接这样定义变量 test。 但 struct D test; 可行。
typedef struct D { int d;};
- 第五种结构体定义在第四种结构体定义的基础上加上了别名 x, 此时像在第四种结构体定义
中说得那样, 此时的结构体 E 有别名 x, 故可以用 x 定义 E 的结构体变量。 用 E 不能直接定
义, 需要在前面加 struct, 如 struct E test; 。
typedef struct E { int e;}x;
- 第六种结构体定义在第五种的基础上减去了结构体名, 但是若是直接使用 y 来定义该结构体
类型的变量也是可以的。 如 y test; 。 (常用)
typedef struct { int f;}y;