字节 飞书 C++ 客户端 一面

在最开头介绍的时候,面试官问我为什么投这个(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指针没写好,以及全程和面试官不在同一频道
全部评论
3就是未定义行为,不用想,对空指针解引用就是未定义行为,标准里写的明明白白,理论上编译器可以产生任意结果
3 回复 分享
发布于 2024-09-01 00:05 四川
6666,这个我之前字节也是这个面试官,大部分问的一模一样,手撕也是unique_ptr
2 回复 分享
发布于 2024-08-31 19:04 安徽
为何你问正常八股啦,我那个面试完问了好多前端问题,我答的很艰难
点赞 回复 分享
发布于 2024-10-22 16:02 安徽
我刚读大二时,省金基本乱杀,大厂随便去,现在我研究生快毕业了,发现好多acm区域赛金的大佬进大厂也得费力了。
点赞 回复 分享
发布于 2024-08-31 17:54 山东

相关推荐

评论
9
92
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务