__declspec(novtable) 的用法
生活随笔
收集整理的這篇文章主要介紹了
__declspec(novtable) 的用法
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
__declspec(novtable) 在C++中接口中廣泛應(yīng)用. 不容易看到它是因?yàn)樵诤芏嗟胤剿急欢x成為了宏. 比如說(shuō)ATL活動(dòng)模板庫(kù)中的ATL_NO_VTABLE, 其實(shí)就是__declspec(novtable).
__declspec(novtable) 就是讓類不要有虛函數(shù)表以及對(duì)虛函數(shù)表的初始化代碼, 這樣可以節(jié)省運(yùn)行時(shí)間和空間. 但是這個(gè)類一定不允許生成實(shí)例, 因?yàn)闆](méi)有虛函數(shù)表, 就無(wú)法對(duì)虛函數(shù)進(jìn)行調(diào)用.
因此, __declspec(novtable)一般是應(yīng)用于接口(其實(shí)就是包含純虛函數(shù)的類), 因?yàn)榻涌诎亩际羌兲摵瘮?shù), 不可能生成實(shí)例. 我們把 __declspec(novtable)應(yīng)用到接口類中, 這些接口類就不用包含虛函數(shù)表和初始化虛函數(shù)表的代碼了. 它的派生類會(huì)自己包含自己的虛函數(shù)表和初始化代碼.
總結(jié)
以上是生活随笔為你收集整理的__declspec(novtable) 的用法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ADO学习(三)Command 对象
- 下一篇: ADO学习(九)如何阅读ADO文档