- 博客(7)
- 收藏
- 关注
原创 C++面试常见问题总结(五)(本人面试遇到的问题记录,作为学习和交流用)
1:C++虚函数表是如何实现的?虚表存放在哪里?虚表中的数据是在什么时候确定的? 对象中的虚表指针又在什么时候赋值的? 类的虚函数表会被这个类的所有对象所共享。类的对象可以有很多,但是他们的虚函数表指 针都指向同一个虚函数表。因此,我们可以把虚函数表简单理解为类的静态数据成员。虚函 数表是类的对象共享的。注意,虚函数表的指针不共享。类的每一个对象都有一个属于他自 己的虚函数表指针。 在 C...
2020-03-25 15:05:16
455
原创 C++面试常见问题总结(四)(本人面试遇到的问题记录,作为学习和交流用)
1、函数调用的整个执行过程是什么? 首先这里的函数不包含内联函数,因为内联函数是类似于宏定义的一种展开方式。这里的函数指普通的成员函数,在出现函数调用时,首先会将函数下一条调用语句的地址保存到栈中,然后将函数参数从右向左依次压栈,跳转到函数体处;如果函数体中定义了变量,将变量压栈,将每一个形参以栈中对应的实参值取代,执行函数体的功能体;将函数体中的变量、保存到栈中的实参值,依次从栈中取...
2019-04-07 07:37:57
328
原创 C++面试常见问题总结(三)(本人面试遇到的问题记录,作为学习和交流用)
1、malloc和new的区别。malloc是c语言中的,单纯的分配内存,不检查是否内存分配成功。New则是C++中的,分配时对构造函数,析构,虚函数等都要分配内存空间,且会检查是否分配成功,失败返回错误码。malloc分配内存时必须自己指定要分配的空间,new则根据类型自动分配Malloc是标准库函数,new是C++运算符,malloc不能初始化或者析构函数,这是编译器做的事。2...
2019-03-02 20:57:45
458
原创 C++面试常见问题总结(二)(本人面试遇到的问题记录,作为学习和交流用)
1:C++中类在内存中的分布情况是什么?对象的内存分布是什么? C++将内存分为栈,堆,自由存储区,全局/静态存储区,常量存储区。 类在内存中的存储方式是 第一:类的普通成员函数不占内存,静态成员函数也不占内存,存放的位置不同。 第二:虚函数占用4个字节(32bit) 第三:空类占一个字节 ...
2019-02-12 20:35:09
311
原创 C++面试常见问题总结(一)(本人面试遇到的问题记录,作为学习和交流用)
自己大大小小面试了不少企业,做过的笔试题也不少,面对的提问也是各种各样,不过对这些面试总结后还是能发现一些规律(多态,抽象类,设计模式等),由于自己每次面试后都会第一时间记录下面试中的问题,并及时补充遗漏的知识点。这里分几期来将自己面试中遇到的问题列出来并给出自己的理解,作为分享用。愿意交流的可以写下评论。谢谢! 问题1、C与C++有什么区别? ...
2019-02-10 19:04:09
2002
原创 C++内存分配的机制
对于C++内存分配虽然都有了解,但在实际复习后发现仍有一些细节没有搞清楚,这里做个总结并方便后期查看。C++将内存分为栈,堆,全局/静态存储区,常量存储区和代码区。其中局部变量存储在栈区,不过栈的空间有限,不过系统会自动释放其空间,避免了内存泄漏和溢出。优点是速度快,效率高,因为有专门的寄存器处理。栈是机器系统提供的数据结构,计算机会在底层对栈提供支持:分配专门的寄存器存放栈的地址,压栈出...
2018-11-28 13:53:15
786
原创 QT信号与槽机制与事件机制的区别
第一:什么是信号与槽?事件? 所谓信号槽,实际就是观察者模式。当某个事件发生之后,比如,按钮检测到自己被点击了一下,它就会发出一个信号(signal)。这种发出是没有目的的,类似广播。如果有对象对这个信号感兴趣,它就会使用连接(connect)函数,意思是,用自己的一个函数(成为槽(slot))来处理这个信号。也就是说,当信号发出时,被连接的槽函数会自动被回调。这就类似观察者模式...
2018-11-28 13:51:57
7960
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人