博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面试总结
阅读量:5291 次
发布时间:2019-06-14

本文共 799 字,大约阅读时间需要 2 分钟。

1.虚函数表的原理,单继承和多重继承有什么不一样的

  1)基类和继承类的虚函数表的存储的函数指针;

   每个类都有自己独立的虚函数表,存放在类内存的首地址。一个虚函数表可以理解为一个函数指针数组。子类继承基类的虚函数表,如果有重写虚函数则子类虚函数覆盖虚函数表中的基类函数的指针;

  2)多重继承的模型

  

  多重继承的模型中,子类会保存多个虚函数表以对应不同父类;重写虚函数的话就替换表中相同的虚函数,自己的虚函数会添加到第一个继承的类的虚函数表后面;

  3)菱形继承

  菱形继承会出现通过不同的途径继承过来的父类或者爷爷类在派生类种存在多份,浪费了内存且存在二义性。可以通过虚继承来实现,具体为:虚基类表指针(virtual base table pointer),该指针指向了一个虚基类表(virtual table),虚表中记录了虚基类与本类的;通过偏移地址,这样就找到了虚基类成员,而虚继承也不用像普通多继承那样维持着公共基类(虚基类)的两份同样的拷贝,节省了存储空间。

2.三次握手的模型(client和server的状态变化)

3.多线程和进程间通信有什么方式

4.动态库的加载方式

5.共享内存的实现

6.win32界面函数调用过程

7.i/0模型(网络连接场景有上千个client)

8.运行时库多线程修改里面的全局变量,什么结果

9.__cdecl 和__stdcall的区别

10.虚拟内存是怎么出来的

11.vs生成c++代码生成的MD和MT区别

    /MT和/MTd表示采用多线程CRT库的静态lib版本。 提高了运行效率,但是代码会变得臃肿

    /MD和/MDd表示采用多线程CRT库的动态dll版本,会使应用程序使用运行时库特定版本的多线程DLL。代码体积小

转载于:https://www.cnblogs.com/wzxNote/p/10425053.html

你可能感兴趣的文章
学android:直接用jdk来helloworld
查看>>
python tkinter GUI绘制,以及点击更新显示图片
查看>>
Spark基础脚本入门实践3:Pair RDD开发
查看>>
HDU4405--Aeroplane chess(概率dp)
查看>>
python使用easyinstall安装xlrd、xlwt、pandas等功能模块的方法
查看>>
CS0103: The name ‘Scripts’ does not exist in the current context解决方法
查看>>
20130330java基础学习笔记-语句_for循环嵌套练习2
查看>>
Spring面试题
查看>>
窥视SP2010--第一章节--SP2010开发者路线图
查看>>
MVC,MVP 和 MVVM 的图示,区别
查看>>
C语言栈的实现
查看>>
代码为什么需要重构
查看>>
TC SRM 593 DIV1 250
查看>>
SRM 628 DIV2
查看>>
2018-2019-2 20165314『网络对抗技术』Exp5:MSF基础应用
查看>>
统计单词,字符,和行
查看>>
jQuery垂直滑动切换焦点图
查看>>
Python-S9-Day127-Scrapy爬虫框架2
查看>>
模运算
查看>>
python多线程的使用
查看>>