2022年9月7日:天正软件CAD二次开发一面(已过)
笔试阶段
1.循环链表的最大优势
- 能够通过任意结点实现链表的遍历
2·static关键字
#include <iostream>
#include <vector>
using namespace std;
void fun(){
static int a=1;
cout<<"a="<<a<<endl;
a++;
}
int main(){
fun();
fun();
return 0;
}
输出什么:
3.继承访问的权限
- 公有继承-基类的访问权限在派生类不变-可以访问公有和保护
- 私有继承:基类所有成员在派生类中的访问权限都会变成为私有
- 保护继承,基类的公有成员和保护成员在派生类的访问权限都会变成protect权限
4.链表的删除
- 循环结束的条件
5.虚函数–的调用
构造的时候-先调用基类的构造-析构的时候,先调用派生的析构-再调动基类构造,如果函数重写,那么则直接调动派生类的构造
//
// Created by HANWENKE on 2022/9/2.
//
#include <iostream>
#include <vector>
using namespace std;
class Base{
public:
Base(){
cout<<"Create Base"<<endl;
}
virtual ~ Base(){
cout<<"destorty Base"<<endl;
}
virtual void fun(){
cout<<"Base"<<endl;
};
};
class Drive:public Base{
public:
Drive(){
cout<<"Create Drive"<<endl;
}
virtual ~ Drive(){
cout<<"destorty Drive"<<endl;
}
virtual void fun(){
cout<<"Drive"<<endl;
};
};
int main(){
Drive l;
l.fun();
return 0;
}
面试阶段
1.自我介绍
介绍一下自己的项目
2·stl库,map,vector的底层实现
- stl的底层实现是是数组,map的底层实现是红黑树数,是有序的,查找的时间复杂度是o(logn)
3·什么场景下选择vector什么场景下选择list
-
vector可以随机存储元素,但在非末尾插入数据的时候,效率很低,适合对象简单,对象数量变化不大,随机访问频繁。
-
list不支持随机存储,适用于对象大,对像数据变化平凡,插入和删除频繁,比如写多读少的场景
4·多态的实现
- 将类的成员方法用virtual进行对应的修饰
- 在派生类中重写该方法
5·MFC了解嘛
- 不是很了解,只是知道是微软的桌面应用开发的框架,在大学的时候用C#做过
6·以后想往什么样的方向发展
7·期望薪资
8·反问
- 有没有员工入职培训
- 有没有去北京的机会