成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

闡述各種條件下的C++安全性問題

開發(fā) 后端
通過上面對C++安全性的講述,相信我們對虛函數(shù)表有一個比較細(xì)致的了解了,下面,讓我們來看看我們可以用虛函數(shù)表來干點什么壞事吧。

C++安全性的細(xì)節(jié)太多,就算都看過了,也不可能都記住。更關(guān)鍵的是,就算都記住了,也不能讓你成為一個真正的好程序員,看完本文你肯定有不少收獲,希望本文能教會你更多東西。

通過父類型的指針訪問子類自己的虛函數(shù)

我們知道,子類沒有重載父類的虛函數(shù)是一件毫無意義的事情。因為多態(tài)也是要基于函數(shù)重載的。雖然在上面的圖中我們可以看到Base1的虛表中有Derive的虛函數(shù),但我們根本不可能使用下面的語句來調(diào)用子類的自有虛函數(shù):

任何妄圖使用父類指針想調(diào)用子類中的未覆蓋父類的成員函數(shù)的行為都會被編譯器視為非法,所以,這樣的程序根本無法編譯通過。但在運行時,我們可以通過指針的方式訪問虛函數(shù)表來達到違反C++安全性的行為。(關(guān)于這方面的嘗試,通過閱讀后面附錄的代碼,相信你可以做到這一點)#t#

另外,如果父類的虛函數(shù)是private或是protected的,但這些非public的虛函數(shù)同樣會存在于虛函數(shù)表中,所以,我們同樣可以使用訪問虛函數(shù)表的方式來訪問這些non-public的虛函數(shù),這是很容易做到的。

  1. class Base {   
  2.  
  3. private:   
  4.  
  5. virtual void f() { cout << "Base::f" << endl; }   
  6.  
  7. };   
  8.  
  9. class Derive : public Base{   
  10.  
  11. };   
  12.  
  13. typedef void(*Fun)(void);   
  14.  
  15. void main() {   
  16.  
  17. Derive d;   
  18.  
  19. Fun pFun = (Fun)*((int*)*(int*)(&d)+0);   
  20.  
  21. pFun();   
  22.  
  23. }  

C++安全性是一種很難的問題,對于程序員來說,我們似乎永遠摸不清楚這門語言背著我們在干了什么。需要熟悉這門語言,我們就必需要了解C++里面的那些東西,需要去了解C++中那些危險的東西。不然,這是一種搬起石頭砸自己腳的編程語言。

C++安全性是這些“創(chuàng)新”的土壤,是的,我說的就是無窮無盡的workarounds和慣用法。但問題是,這些“創(chuàng)新”其實根本不是創(chuàng)新,你必須認(rèn)識到的是,他們都只不過是在沒有first-class解決方案的前提下不得已折騰出來的替補方案。是的,它們某種程度上的確可以叫創(chuàng)新,甚至研究可行的解決方案本身也是一件非常有意思的事情。

責(zé)任編輯:chenqingxiang 來源: 51CTO
相關(guān)推薦

2015-04-21 10:21:49

2010-03-02 16:34:36

WCF線程

2013-04-10 10:54:13

Hadoop大數(shù)據(jù)大數(shù)據(jù)安全

2021-10-12 16:11:19

區(qū)塊鏈安全比特幣

2011-01-10 10:45:09

2010-01-11 15:55:51

C++語言

2009-07-21 08:45:57

Google操作系統(tǒng)Chrome系統(tǒng)安全性

2009-07-21 10:17:06

Chrome操作系統(tǒng)安全性

2012-09-29 10:22:36

2018-02-27 10:49:53

5G遷移安全

2018-07-16 15:31:15

2010-01-11 09:28:34

C++編程

2010-01-13 18:49:54

C++的復(fù)雜性

2010-02-06 09:45:49

Android屬性

2012-10-25 13:57:46

2023-09-28 08:51:58

Java數(shù)據(jù)

2009-11-06 11:10:01

2012-04-12 11:28:04

2009-09-23 09:19:23

2010-03-11 15:03:47

點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 一区二区成人在线 | 日韩二 | 日本精品久久久一区二区三区 | 中文字幕免费视频 | 日日综合| 欧美不卡一区二区 | 中文字幕欧美日韩 | 国产精品爱久久久久久久 | 这里只有精品999 | 免费看国产一级特黄aaaa大片 | 国产精品成人久久久久 | 玖玖在线免费视频 | 亚洲成人一区二区三区 | 狠狠的干狠狠的操 | 亚洲三区视频 | 国产视频第一页 | 国产欧美一区二区三区在线看 | 激情视频网站 | 日韩精品一二三 | 福利成人| 国产成人自拍一区 | 国产在线视频一区 | 国产精品大片 | 精品欧美一区免费观看α√ | 美女黄网 | 婷婷精品| 精品久久久久久 | 在线观看视频中文字幕 | 国色天香成人网 | 午夜一区二区三区视频 | 国产精品美女www爽爽爽视频 | 美女天天干天天操 | 日韩中文在线观看 | 啪视频在线 | 成人午夜性成交 | 日韩三级| 亚洲淫视频 | 欧美午夜一区 | 九一在线观看 | 亚洲网站在线观看 | 国产午夜亚洲精品不卡 |