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

__declspec(novtable) 就是让类不要有虚函数表以及对虚函数表的初始化代码, 这样可以节省运行时间和空间. 但是这个类一定不允许生成实例, 因为没有虚函数表, 就无法对虚函数进行调用.

因此, __declspec(novtable)一般是应用于接口(其实就是包含纯虚函数的类), 因为接口包含的都是纯虚函数, 不可能生成实例. 我们把 __declspec(novtable)应用到接口类中, 这些接口类就不用包含虚函数表和初始化虚函数表的代码了. 它的派生类会自己包含自己的虚函数表和初始化代码.

__declspec(novtable) 的用法相关推荐

  1. __declspec关键字详细用法

    __declspec关键字详细用法 2009-01-21 16:23 __declspec用于指定所给定类型的实例的与Microsoft相关的存储方式.其它的有关存储方式的修饰符如static与ext ...

  2. __declspec(novtable)有什么作用

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

  3. c++ 中__declspec 的用法

    语法说明: __declspec ( extended-decl-modifier-seq ) 扩展修饰符: 1:align(#)     用__declspec(align(#))精确控制用户自定数 ...

  4. 【转】__declspec用法详解

    __declspec用法详解 __declspec用于指定所给定类型的实例的与Microsoft相关的存储方式.其它的有关存储方式的修饰符如static与extern等是C和 C++语言的ANSI规范 ...

  5. __declspec

    __declspec __cdecl和__stdcall都是函数调用规范(还有一个__fastcall),规定了参数出入栈的顺序和方法, 如果只用VC编程的话可以不用关心,但是要在C++和Pascal ...

  6. 浅析 C++智能指针和 enable_shared_from_this 机制

    作者 | 小牛  责编 | 阿哲 头图 | CSDN 下载自视觉中国 来源 | 后端技术小牛说(ID:gh_acfd77ed3228) 今天跟聊一下 BAT 面试 C++ 开发工程师必问的一个考点:智 ...

  7. 从源码看std::weak_ptr

    1. 序 本篇文章来讲解一下weak_ptr, weak_ptr一般也都是和shared_ptr同时存在的,相当于对对象的弱化版引用.我们首先从源码的角度来讲解下weak_ptr,然后再讲一下weak ...

  8. __purecall 链接错误

    不知道诸位有没有过这样的经历:本是简单合法的 C++ 代码,但编译链接的时候却出现了如下的链接错误: > error LNK2001: 无法解析的外部符号 __purecall 在解决这个问题之 ...

  9. C++接口的定义用一个实例说明 [转]

    接口是一个没有被实现的特殊的类,它是一系列操作的集合,我们可以把它看作是与其他对象通讯的协议.C++中没有提供类似interface这样的关键 字来定义接口,但是Mircrosoft c++中提供了_ ...

最新文章

  1. 盘一盘 2021 年程序员们喜欢的网站数据
  2. 单纯形法(四)理论部分(终结)
  3. ARM Cortex-M0微控制器汇编语言之分支条件的典型用法
  4. 寻路机器人单片机程序示例_单片机精华程序代码示例:DS1302时钟程序
  5. OpenCV Lucas-Kanade光流计算的实例(附完整代码)
  6. R语言blotter包回测实例
  7. 佳能2900打印机与win10不兼容_佳能2900打印机和惠普1020哪种好 佳能2900打印机和惠普1020对比【详解】...
  8. 在IDEA中解决jar包冲突的神操作-必看,秒杀市面方法
  9. 算天数什么时候加一什么时候不加一_陌陌加公会不加公会的区别?
  10. 世界名人的博客,他们走在了我们前面,努力奋斗吧
  11. 小程序apkg还原_Macbook不为人知实用小技巧,学到就赚到!
  12. 华为ensp_三层交换
  13. [C++]牛客 WY11 星际穿越
  14. codeforces884D(大概是构造,优先队列)
  15. 建造者模式——画胖小人和瘦小人
  16. 水漆哪个品牌好?十大品牌水漆排行榜
  17. 【CAD-Web】CAD/DWG的Web化
  18. 利用51单片机+HC-SR04+51单片机制造超声波测距模块
  19. FireFox插件 - Greasemonkey
  20. 洛谷 U41571 Agent2

热门文章

  1. 字节输出流写入数据到文件
  2. Linux环境下安装Redis
  3. 模块-基本概念和import导入复习
  4. SpringBoot_配置-properties配置文件编码问题
  5. oracle 分析函数、GROUPING函数
  6. linux top 看硬盘读写,linux iotop 安装使用教程(显示硬盘IO读写情况)
  7. MySQL 下载与配置教程(免安装版)
  8. Asp.net MVC Filter监控页面性能和运行时间
  9. React Native 蓝牙4.0 BLE开发
  10. 10-python-字典