7.14乐鑫二面
项目+基础知识+简单代码
1、C++类继承中的构造函数和析构函数 调用顺序
建立对象时,首先调用基类的构造函数,然后在调用下一个派生类的构造函数,依次类推;析构对象时,其顺序正好与构造相反。
2、软拷贝和硬拷贝的区别。
代码:写一个返回值为int ,参数是int的,函数指针名称为test的函数指针声明
int (* test)(int);
7.15 字节一面
基础知识+手撸代码
编译和链接的作用
数据库事务的定义,怎么使用,何时使用
group by怎么用
关系数据库和无关系数据库的区别
多态怎么使用,举例说明
TCP和UDP的区别
TCP怎么实现可靠传输、TCP怎么连接
三次握手接收方不发送ACK怎么样
代码:判断二叉树是否为对称的
#include<iostream>
using namespace std;
struct TreeNode{
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x):val(x),left(nullptr),right(nullptr) {}
};
bool check(TreeNode* left,TreeNode* right){
if(!left&& !right)
return true;
else if(!left || !right)
return false;
else
return left->val==right->val && check(left->left,right->right) && check(left->right,right->left);
}
int main(){
TreeNode* head=new TreeNode(0);
TreeNode* leaf1=new TreeNode(1);
TreeNode* leaf2=new TreeNode(1);
head->left=leaf1;
head->right=leaf2;
cout<<check(head,head);
}