InstallC++BoostonUbuntu|ShiChuan'sblogInstallC++BoostonUbuntuPostedonFebruary16,2009byShiChuanTweetBoostisprobablythemostpopularC++library,toinstallC++BoostonUbuntuiseasy.Openyourterminalandtypethefollowingcommandtoinstallthepacka
系統 2019-08-12 01:32:25 3145
《程序員》5月文章。申明。文章僅代表個人觀點,與所在公司無任何聯系。概述在前面的安全編碼實踐的文章里,我們討論了GS編譯選項和數據執行保護DEP功能。結論是GS和DEP可以有效的緩解緩存溢出類型的安全漏洞的危害。關于這個結論,有兩個大家需要值得注意的地方。第一:GS和DEP是緩解(mitigation)措施。也就是說,代碼本身仍然存在著安全漏洞,只是由于GS和DEP降
系統 2019-08-29 23:04:24 3140
很久沒有認真的寫文章了,想通過開發一個完整的圖像處理程序來對一些的知識進行總結。也希望自己在此方面更進一步。在我們的圖像處理程序中,將實現類似PhotoShop的一些常用圖像工具和功能。在此先列出一個類似目錄的東西,也是給自己定下的一個計劃。希望能激勵自己堅持下去,寫完這個系列的文章。這里所有的C++都是指非托管的C++。第一部分:基礎知識介紹1.VisualC++2005集成環境介紹2.圖像處理預備知識第二部分:界面實現1.工具欄1.1工具箱的屬性設置欄
系統 2019-08-29 22:48:15 3131
本文主要說明對象創建時構造函數的執行順序,對象成員的初始化順序;對象銷毀時析構函數的執行順序,對象成員的銷毀順序。“對象的構造從類層次的最根處開始,在每一層中,首先調用基類的構造函數,然后調用成員對象的構造函數。析構則嚴格按照與構造相反的次序執行,該次序是唯一的,否則編譯器將無法自動執行析構過程。一個有趣的現象是,成員對象初始化的次序完全不受它們在初始化表中次序的影響,只由成員對象在類中聲明的次序決定。這是因為類的聲明是唯一的,而類的構造函數可以有多個,因
系統 2019-08-29 22:28:44 3123
我在上篇文章舉了一個簡單的C++程序非常簡略的解釋C++代碼和匯編代碼的對應關系,在后面的文章中我將按照不同的Topic來仔細介紹更多
系統 2019-08-29 22:56:09 3117
0為什么需要hash_map用過map吧?map提供一個很常用的功能,那就是提供key-value的存儲和查找功能。例如,我要記錄一個人名和相應的存儲,而且隨時增加,要快速查找和修改:岳不群-華山派掌門人,人稱君子劍張三豐-武當掌門人,太極拳創始人東方不敗-第一高手,葵花寶典...這些信息如果保存下來并不復雜,但是找起來比較麻煩。例如我要找"張三豐"的信息,最傻的方法就是取得所有的記錄,然后按照名字一個一個比較。如果要速度快,就需要把這些記錄按照字母順序排
系統 2019-08-29 22:53:28 3116
C/C++筆試、面試題目大匯總1.求下面函數的返回值(微軟)intfunc(x){intcountx=0;while(x){countx++;x=x&(x-1);}returncountx;}假定x=9999。答案:8思路:將x轉化為2進制,看含有的1的個數。2.什么是“引用”?申明和使用“引用”要注意哪些問題?答:引用就是某個目標變量的“別名”(alias),對應用的操作與對變量直接操作效果完全相同。申明一個引用的時候,切記要對其進行初始化。引用聲明完畢
系統 2019-08-29 23:51:53 3115
概述想想我們小時候玩的四驅車,里面的構造很復雜,馬達,舵機,電池組等等,而我們控制它卻非常簡單,只要打開電池開關,他就可以跑。我們其實不用知道它里面是如何工作,只要知道撥動開關它就可以工作就行了,這個開關其實就四驅車給我們的一個友好的組件,使得我們可以很方便的控制它。外觀模式其實定義了一個高層接口,該接口為子系統中的一組接口提供一個一致的界面,使得這一子系統更加容易使用。類圖和樣例在這個對象圖中,出現了兩個角色:外觀(Facade)角色:客戶端可以調用這個
系統 2019-08-29 23:02:52 3108
C++內存對象大會戰如果一個人自稱為程序高手,卻對內存一無所知,那么我可以告訴你,他一定在吹牛。用C或C++寫程序,需要更多地關注內存,這不僅僅是因為內存的分配是否合理直接影響著程序的效率和性能,更為主要的是,當我們操作內存的時候一不小心就會出現問題,而且很多時候,這些問題都是不易發覺的,比如內存泄漏,比如懸掛指針。筆者今天在這里并不是要討論如何避免這些問題,而是想從另外一個角度來認識C++內存對象。我們知道,C++將內存劃分為三個邏輯區域:堆、棧和靜態存
系統 2019-08-29 22:08:04 3096
classMyString{public:MyString();MyString(intnewsize);MyString(constMyString&ms);constMyString&operator=(constMyString&ms);virtual~MyString();private:int*ptr;intsize;};/////MyString::MyString(intnewsize){size=newsize;ptr=newint[siz
系統 2019-08-29 23:05:49 3093
前言C++中的虛函數的作用主要是實現了多態的機制。關于多態,簡而言之就是用父類型別的指針指向其子類的實例,然后通過父類的指針調用實際子類的成員函數。這種技術可以讓父類的指針有“多種形態”,這是一種泛型技術。所謂泛型技術,說白了就是試圖使用不變的代碼來實現可變的算法。比如:模板技術,RTTI技術,虛函數技術,要么是試圖做到在編譯時決議,要么試圖做到運行時決議。關于虛函數的使用方法,我在這里不做過多的闡述。大家可以看看相關的C++的書籍。在這篇文章中,我只想從
系統 2019-08-29 23:23:28 3030
我們從寫第一個HelloWorld程序時,就開始使用main函數。后來學到Windows編程,又開始使用WinMain函數。我們都知道每個程序都得有個主函數入口。今天就簡單介紹一下我們使用主函數時給它傳入命令參數。很早以前就想寫了,但是一直沒有找到合適的地方。今天碰到項目中的一個問題,便想起了這塊兒。。我們通常寫控制臺main都沒有帶參數,因為我們很少用到。這個命令參數的功能呢就會涉及到里面的參數。可以這樣定義:intmain(intargc,char*a
系統 2019-08-29 22:34:59 3019
如果對Linux下靜態鏈接庫和動態鏈接庫感興趣,請狂點擊-->你懂的一,概念1)靜態鏈接庫就是你使用的.lib文件,庫中得代碼最后需要連接到你的可執行文件中去,所以靜態連接的可執行文件一般比較大一些。使用方法1>格式如:#pragmacomment(lib,"XXX.lib")2>針對開發環境:1、如果使用VC,可以在ProjectSetting-->Link中加入你的靜態庫,也可以直接把該.lib文件加入到你的工程中2、如果使用VisualStudio,
系統 2019-08-29 22:16:42 3009
VisualLeakDetectorforVisualC++2008/2010/2012VisualLeakDetectorforVisualC++2008/2010/2012ProjectDescriptionVisualLeakDetectorisafree,robust,open-sourcememoryleakdetectionsystemforVisualC++.It'sprettyeasytouse.Afterinstallingit,youj
系統 2019-08-12 01:32:41 3007
1.C++中調用程序:ShellExecute(NULL,L"open",L"cmd.exe",L"/cd:&cdcygwin&cygwin.bat",L"D:\\cygwin\\",SW_HIDE);2.修改cygwin.bat:@echooffD:chdirD:\cygwin\binbash--login-i改成:@echooffsetCYGWIN=binmodettyntsecD:for/f%%iin('tasklist')doif/i%%i==XW
系統 2019-08-12 09:27:06 3004