__declspec(novtable) 的用法

简介:   __declspec(novtable) 在C++中接口中广泛应用. 不容易看到它是因为在很多地方它都被定义成为了宏. 比如说ATL活动模板库中的ATL_NO_VTABLE, 其实就是__declspec(novtable).  __declspec(novtable) 就是让类不要有虚函数表以及对虚函数表的初始化代码, 这样可以节省运行时间和空间. 但是这个类一定不允许生成实例,

 

__declspec(novtable) 在C++中接口中广泛应用. 不容易看到它是因为在很多地方它都被定义成为了宏. 比如说ATL活动模板库中的ATL_NO_VTABLE, 其实就是__declspec(novtable).

 __declspec(novtable) 就是让类不要有虚函数表以及对虚函数表的初始化代码, 这样可以节省运行时间和空间. 但是这个类一定不允许生成实例, 因为没有虚函数表, 就无法对虚函数进行调用. 因此, __declspec(novtable)一般是应用于接口(其实就是包含纯虚函数的类), 因为接口包含的都是纯虚函数, 不可能生成实例. 我们把 __declspec(novtable)应用到接口类中, 这些接口类就不用包含虚函数表和初始化虚函数表的代码了. 它的派生类会自己包含自己的虚函数表和初始化代码. 

 

相关文章
|
网络协议 Docker 容器
Docker容器内不能联网的6种解决方案
Docker容器内不能联网的6种解决方案   注:下面的方法是在容器内能ping通公网IP的解决方案,如果连公网IP都ping不通,那主机可能也上不了网(尝试ping 8.
13832 2
|
存储 SQL 关系型数据库
MySQL一张表最多能存多少数据?
MySQL一张表最多能存多少数据?
MySQL一张表最多能存多少数据?
|
9月前
|
数据采集 人工智能 文字识别
PDF 转 Markdown 神器:MinerU 2.5 (1.2B) 部署全攻略
MinerU是由OpenDataLab推出的开源PDF解析工具,支持精准布局分析、公式识别与表格提取。本文详解其2.5-2509-1.2B版本在Linux下的部署流程,涵盖环境搭建、模型下载、核心配置及实战应用,助你高效处理复杂PDF文档,提升AI数据清洗效率。
3864 3
|
人工智能 安全 前端开发
github和npm开启2FA双重身份验证无法登陆
随着安全需求提升,许多应用如GitHub和npm已强制启用2FA(双重身份验证)。2FA通过用户名、密码及动态验证码增强账号安全性。若手机丢失或TOTP应用失效,可使用开启2FA时生成的recovery code登录并重新绑定。推荐使用大厂的TOTP工具,如Microsoft Authenticator、Google Authenticator等,避免小应用停服风险。若无备份码,只能通过人工申诉找回账号。
4303 15
github和npm开启2FA双重身份验证无法登陆
|
机器学习/深度学习 人工智能 数据挖掘
【人工智能】Transformers之Pipeline(一):音频分类(audio-classification)
【人工智能】Transformers之Pipeline(一):音频分类(audio-classification)
1335 0
|
Java 程序员 Windows
[笔记]Windows核心编程《十一》Windows线程池
[笔记]Windows核心编程《十一》Windows线程池
37315 4
[笔记]Windows核心编程《十一》Windows线程池
|
传感器 机器学习/深度学习 编解码
音视频同步的方法:深入探索基于FFmpeg的音视频同步策略(二)
音视频同步的方法:深入探索基于FFmpeg的音视频同步策略
1693 1
|
存储 编解码 缓存
sws_getContext和sws_scale分析
sws_getContext和sws_scale分析
727 0
sws_getContext和sws_scale分析

热门文章

最新文章