在最开头介绍的时候,面试官问我为什么投这个(HR捞的....,本来投的后端,被换成这个了),然后我以为是移动端,然后巴拉巴拉说了一下我认为的移动端的前景,然后面试官说这是PC端
1.class 和 struct之间的区别在哪
2.在C++中创建一个类,在一开始类中有些什么
2.static的作用,以及用static修饰全局变量和不修饰的区别
3.这段代码执行会发生什么
```C++
#include <iostream>
class A {
public :
void f() {
}
};
int main() {
A* a = nullptr;
a -> f();
return 0;
}
```
(一开始在我看来,这就是未定义行为,应该是指向内存空间中的保留区或者是任意的一个地址;
之后我查了一下,是因为类的成员函数保存在代码段,然后被所有对象所共享吗?然后没有通过this指针去访问类中的相应成员变量,所以仍然是可以调用的嘛)
4.new和malloc之间的区别在哪
5.如何限制对象创建在堆/栈上?
6.介绍一下线程的栈和进程的栈之间的关系
7.讲一下模板元编程中的特化和偏特化,以及其和函数重载之间的区别
8.讲一下异常规范
9.一个进程的栈有多大
10.虚函数和普通函数之间的区别在哪
11.计算这个类的大小
```c++
#include <iostream>
class base1{
private:
int a;
char c;
public:
virtual void fun1(){}
virtual void fun2(){}
};
int main() {
std::cout << (sizeof(base1));
return 0;
}
```
12.虚函数指针存储在哪
13.析构函数是否要声明为虚函数
14.销毁时,子类和基类调用析构函数的顺序
15.介绍一下智能指针
16.讲一下右值
18.谈一下你对移动构造函数的理解
19.写一个unique_ptr
无反问
有一段实习是在软件所 plct实验室用模板元编程写simd库的,面试官好像不太感兴趣,项目是XV6加上自己的一些魔改,改进了一些系统调用啥的,然后加上一个acm的铜和省金,面试官也不太感兴趣(好像也没啥好问的这些东西),全程没有涉及到OS啥的,都是C/C++,差不多都答上来了,但估计挂了,感觉最后unique指针没写好,以及全程和面试官不在同一频道