前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >字节跳动凉面(抖音C++)(问题+解答)

字节跳动凉面(抖音C++)(问题+解答)

作者头像
牛客网
发布2019-04-18 16:00:11
1.8K0
发布2019-04-18 16:00:11
举报
文章被收录于专栏:牛客网

作者:料青山见我应如是

本科大四。 在字节官网投了简历,过了一天突然收到hr电话,问我工作倾向于北京还是上海,我说上海,然后hr说把我简历转给抖音上海hr....又过了一天(清明节前一天),再次突然收到hr电话,说我简历还行,可以免笔试直接安排面试,于是就安排了在了清明假期后的第一天下午视频面试(也就是今天4月8....)

一面(问题前后顺序记不太清,但大致有序,以下是问题和我当时的大概回答):

1、自我介绍

2、你面的是C++岗是吧,现在拿了几个offer,是哪几家

3、问问题环节:选一个你熟悉的语言,程序从源代码文件到运行,全过程是怎么样的,比如分哪些步骤,每步具体做什么,说详细。(说了C/C++ 预处理、编译、静态动态链接、运行几个阶段及各阶段的事情)

4、你提到了动态链接和静态链接,再说具体一些。  (略,网上可搜)

5、const A* const fun() const  各个const的作用  (略)

6、const int* const p  各个const作用 (略)

7、C++ 的多态是指什么  (函数重载的编译多态、虚函数的运行多态、参数模板 泛型编程、类型转化都可视作多态)

8、通过虚函数可以实现运行时多态,具体是怎么实现的,什么时候动态绑定的,说说底层原理   (回答虚函数表结构及原理  vptr指针)

9、父类的析构函数为什么最好声明为虚函数     (防止析构时内存泄漏)

10、接上个问题,什么情况会发生内存泄漏,举例  (当子类有比父类多的数据成员,特别是子类有创建于堆上的数据时,若用父类指针指向子类对象,父类析构函数如果不是虚函数,运行时父类析构函数执行而子类析构函数不执行,子类多的内存无法释放)

11、构造函数里面可以调用虚函数吗?(可以调用,编译能通过。在基类构造函数调用虚函数、子类构造函数里调用虚函数分别分析,无法实现动态绑定)

12、new和malloc的区别,new的底层过程是怎样的

13、C和C++里static各有什么作用 (static修饰局部变量、修饰全局变量、修饰函数、修饰类的数据成员和成员函数 作用各不一样,分别说)

14、外部怎么访问类的保护成员,如 定义一个类A:

class A{

public:

A(int x=0){ data = x;}

~A(){ }

protected:

int data;

};

现在有 一个外部函数   void  fun(A *  p){ },该函数的接口已这样写死了。 我们想在函数fun()里使用data这个数据,该怎么做。

答了两种方法,方法1:如果允许修改类A的定义,可以把fun声明为A的友元,就可以用data。

方法2:如果A不可修改,考虑继承的方式,定义一个类B继承于A,则B可以访问A的保护数据,在B中写一个公有方法对外返回该保护成员。例如代码:

class A{

public:

A(int x=0){ data = x;}

protected:

int data;

};

void fun(A* p){

//函数里定义一个类B,继承于A ,则B可以访问A的保护成员

class B:public A{  //这里公有、保护、私有继承都可以

public:

B(){ }

int getData(){

return data;

}

};

B* b = (B*)p;  //把A类型指针强制转化为B类型

cout<getData()<

}

15、STL熟悉吗

16、C++四个关键字用来强制类型转化,哪几个 各自作用,有什么区别。

15、怎么在main函数之前执行一段代码,例如在控制台输出一句话。

16、编程算法题:手写代码,输入整数n,输出n个结点可以构造出多少棵不同的二叉树?(说了两种思路,都发现不可信,会有重复。。。最后也没想出来,还是太辣鸡。。)

17、那换个题吧:不公平游戏的公平玩法。假设有一枚硬币,质地不均匀,抛掷一次 出现正面的概率是p (p不为1/2),但p是多少我们是不知道的。 假设A B两个人玩游戏,我们规定这样一个规则:抛掷这枚硬币1次,正面向上则A获胜,反面则B胜,显然这个规则是不公平的,因为p不是1/2。 要求设计一种新的胜负规则:使得A B获胜的概率相等,即公平游戏。编程模拟实现。(开始没理解好题意,前后搞了好久,最后终于想出来了==)

============GG

字节的难度果然不是吹的,之前也面了两家C++的岗位,对比起来,字节问的东西确实要深入得多,大多数问题个人感觉都不是那么基础,像引用和指针得区别这种概念性得问题基本不问,提的问题 很偏重对底层机制的比较详细的分析。一面问题环节 基本都答上来了,有一两个不会,在面试官引导下也说了一些东西。问题没见过不要紧,可以根据已有的知识推测分析,面试官好像也挺满意这种“推测”的方式。

可惜第一道算法题磨了很多,差不多20分钟。。愣是没想出来,巨尴尬。。第二道也不是很流利。。    字节很看重算法编程能力,我应该是死在了第一题,一面后面试官问有什么要问的,说如果还有二面会在今天一天内进行。。。结果一下午还是没有通知,确定是凉了。。。准备不足,刷题太少,浪费了面试机会.........

牛客上看到了很多头条的面经,但抖音的面经十分稀少,前两天准备都没有太多可以参考的面经,尤其是C++岗位更少,所以写下这篇面经,希望对牛客上的后来者有所帮助吧。

作者:料青山见我应如是

来源:牛客网

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.04.09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库一体机 TData
数据库一体机 TData 是融合了高性能计算、热插拔闪存、Infiniband 网络、RDMA 远程直接存取数据的数据库解决方案,为用户提供高可用、易扩展、高性能的数据库服务,适用于 OLAP、 OLTP 以及混合负载等各种应用场景下的极限性能需求,支持 Oracle、SQL Server、MySQL 和 PostgreSQL 等各种主流数据库。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档