自我介绍 这个倒是听我说完了
项目介绍 这个没说完打断我 我甚至只介绍了有什么功能 功能的具体实现还没说就打断了
说学mfc没有前途 还是去学qt吧
mfc
1. DBX/DBV:查都查不到
2. 如何让模态框一直置顶
我答的是在对对话框编辑的时候侧面添加控件的地方应该可以设置。
3. updatedata函数
是MFC的窗口函数,用来刷新数据的,操作系统会调用这个函数来初始化对话框中的数据,或者检索或者验证对话框中的数据。
4. onpaint
(1)OnPaint是WM_PAINT消息的消息处理函数,在OnPaint中调用OnDraw,一般来说,用户自己的绘图代码应放在OnDraw中。
(2)OnPaint()是CWnd的类成员,负责响应WM_PAINT消息。OnDraw()是CVIEW的成员函数,没有响应消息的功能.
6. 子线程调用界面文件会发生什么事:会报错
qt
6. 信号和槽的机制
c++
7. list/vector,map
8. unorded_map和map的底层实现有什么区别
https://blog.youkuaiyun.com/photon222/article/details/102947597?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-6.base&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-6.base
9. 如果对大数据量进行处理 用unorded_map还是map 哈希表对于处理大数据量有没有红黑树好
10. 如果插入一个数据选择vector还是list
11. vector的扩容:primerc++ p317
为了支持随机访问,vector将数据连续存储。向vector和string中添加元素时,如果没有空间容纳新元素,容器不能简单地把它添加到内存的其他位置(因为元素必须连续存储),容器必须分配新的内存空间给已有元素和新元素,将已有的元素从旧位置移动到新空间中,然后添加新元素,释放旧空间。如果每添加一个元素,vector就执行一次这样的内存分配和释放操作,性能会非常的差。
避免这种代价,采取了减少容器空间重新分配次数的策略。当不得不获取新的内存空间时,vector和string通常会分配比新空间需求更大的内存空间。容器预留这些空间作为备用,了用来保存更多的新元素。这样就不需要每次添加新元素的时候都重新分配容器的内存空间了。
延伸出两个概念:size和capacity
size:已经保存的元素数目
capacity:不分配新的内存空间的前提下最多可以保存多少元素
13. 函数覆盖
14. 纯虚函数是什么
virtual void Bark() = 0;//纯虚函数
15. 纯函数如果继承的话没有重新定义会发生什么
会报错 调试代码
#include <iostream>
#include <string>
class Animal//抽象类
{
public:
Animal(std::string name) :mname(name)
{
std::cout << "Animal::Animal()" << std::endl;
}
virtual void Bark() = 0;//纯虚函数
virtual ~Animal()
{
std::cout << "Animal::~Animal()" << std::endl;
}
protected:
std::string mname;
};
class Dog :public Animal
{
public:
Dog(std::string name) :Animal(name)
{
std::cout << "Dog::Dog()" << std::endl;
}
//void Bark()
//{
// std::cout << mname << " wang wang wang!" << std::endl;
//}
~Dog()
{
std::cout << "Dog::~Dog()" << std::endl;
}
};
class Cat : public Animal
{
public:
Cat(std::string name) :Animal(name)
{
std::cout << "Cat::Cat()" << std::endl;
}
//void Bark()
//{
// std::cout << mname << " miao miao miao!" << std::endl;
//}
~Cat()
{
std::cout << "Cat::~Cat()" << std::endl;
}
};
//void ShowBark(Animal* pa)
//{
// pa->Bark();
//}
int main()
{
Cat* pc = new Cat("cat");
Dog* pd = new Dog("dog");
//ShowBark(pc);
//ShowBark(pd);
delete pc;
delete pd;
system("pause");
return 0;
}
16. 虚函数表
17. 智能指针
18. 用过哪些设计模式
19. 多线程有用过吗
20. io多路复用技术 select/poll/epoll
跟mfc和qt相关的问题后面估计也不会有了 电话面试就是容易准备不充分啊 唉