On The Road
(cond ((less 'code) (less 'bug)))
C++博客
首頁
新隨筆
聯系
聚合
管理
隨筆 - 119 文章 - 290 trackbacks - 0
博客搬家了哦,請移步
叫我abc
常用鏈接
我的隨筆
我的評論
我參與的隨筆
留言簿
(12)
給我留言
查看公開留言
查看私人留言
隨筆分類
《GAME PROGRAMMING GEMS6》讀書筆記(4)
《UNIX編程藝術》讀書筆記(4)
month-flow(5)
mysql入門(3)
垃圾收集(4)
我的博客
叫我abc
博客搬家啦
搜索
積分與排名
積分 - 305322
排名 - 84
最新評論
1.?re: C++ std::fstream open mode
i'am got
--hdj
2.?re: cppcheck的使用
你好,你會使用cppcheck嗎?@robert
--wqq
3.?re: 垃圾收集的那點事(H)
非常感謝
--7Qing_
4.?re: 高效調用lua函數
為什么提示沒有findLuaItem這個函數?
--sdfasf
5.?re: android ndk調試知識[未登錄]
博主你好,請問如果沒有.so的源代碼,應該如何進行arm的匯編級調試呢?
--dennis
閱讀排行榜
1.?cppcheck的使用(17050)
2.?十步精通新語言(10688)
3.?內存池實現(9901)
4.?高效調用lua函數(9261)
5.?在lua腳本中使用unicode(8233)
虛函數在構造函數與析構函數中失效
這只是一個很小的細節問題,更詳細的內容可以搜索《ATL布幔之下的秘密》。
手頭上的一個基類,有一個protected virtual 函數_init(),該函數在基類的構造函數中被調用。我的意圖是子類如果有自己特殊的變量要初始化的話,只要重寫該虛函數就可以了。例如:
void
??Derive::_init()
{
Base::_init()
//
?other?work
}
希望像template method模式一樣工作。
問題是我忘記了這個細節,結果程序陷入不確定的狀態。
隨后做了些簡單的驗證,查看編譯出來的匯編代碼。
結論是:繼承體系中構造函數的順序,是先基類后子類,同時在構造函數中,先設置vftable指針,然后才執行用戶代碼,因此基類中調用虛函數,只能是基類的函數而已,匯編代碼大概是這樣子:
;?D::D()
call??Base::Base()
mov?vftable?
=
?
0x11111
endp
;Base::Base()
mov?vftable?
=
?
0x22222
call?_init
endp
析構函數的順序,是先子類后基類,同構造函數一樣,也是先設置vftable指針,然后才執行用戶代碼,所以虛函數一樣失去作用。
posted on 2006-09-11 21:56
LOGOS
閱讀(730)
評論(1)
編輯
收藏
引用
FeedBack:
#
re: 虛函數在構造函數與析構函數中失效
2006-09-13 15:13
pdkui
虛函數在構造和析構的時候是沒作用,但析構函數本身可以是虛函數。
回復
更多評論
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
Copyright ©2025 LOGOS Powered by:
博客園
模板提供:
滬江博客
激情久久久久久久久久
|
无码乱码观看精品久久
|
久久99国产精品久久99
|
久久久国产精品网站
|
伊人情人综合成人久久网小说
|
亚洲国产另类久久久精品黑人
|
久久久久一区二区三区
|
精品久久久无码21p发布
|
国产精品成人99久久久久91gav
|
久久精品日日躁夜夜躁欧美
|
一级做a爰片久久毛片人呢
|
77777亚洲午夜久久多喷
|
久久久久久A亚洲欧洲AV冫
|
亚洲国产精品无码久久SM
|
久久精品国产精品亚洲艾草网美妙
|
久久久无码精品亚洲日韩按摩
|
久久精品视屏
|
色偷偷888欧美精品久久久
|
无码人妻久久久一区二区三区
|
亚洲AV伊人久久青青草原
|
国産精品久久久久久久
|
国内精品久久久久久野外
|
乱亲女H秽乱长久久久
|
精品熟女少妇AV免费久久
|
精品久久人人爽天天玩人人妻
|
日本高清无卡码一区二区久久
|
丁香久久婷婷国产午夜视频
|
国产精品久久久久影院色
|
人妻无码久久一区二区三区免费
|
九九精品久久久久久噜噜
|
亚洲国产天堂久久综合
|
久久综合伊人77777
|
欧美激情精品久久久久久
|
日韩AV毛片精品久久久
|
久久久久亚洲AV成人网人人网站
|
欧美午夜A∨大片久久
|
狠狠色婷婷久久一区二区三区
|
久久这里只有精品首页
|
99久久无码一区人妻a黑
|
久久久久久久久久久久中文字幕
|
国产成人久久精品二区三区
|