原创 淺談設計模式之四——Singleton模式

單例模式,即只有一個實例。 先上uml圖: uml解析:基本思路是,構造函數爲protected或者private,類不能被實例化,否則就可以有多個實例。static的特性使得類不需要被實例化就能被調用(因爲它和全局變量一

原创 關於中SIG_ERR、SIG_DEL、SIG_IGN定義的問題

linux中signal.h中對對signal的定義是: void (*signal(int signo,void (*func)(int)))(int); 通過typedef可以轉換成這樣: typedef void Sigfu

原创 setjmp和longjmp函數使用方法

非局部跳轉語句—setjmp和longjmp函數。非局部指的是,這不是由普通C語言goto,語句在一個函數內實施的跳轉,而是在棧上跳過若干調用幀,返回到當前函數調用路徑上的某一個函數中。 #include <setjmp.h> I

原创 淺談設計模式之一——簡單工廠、工廠、抽象工廠

這些天意識自身的不足,看着幾個同學跳槽後的高薪,實在是慚愧。畢業兩年,仍一事無成,差距也正逐漸體現出來。人們常說,設計模式是一個初級程序員到高級程序員的必經之路。爲了補強自己,重新研究了GOF四人幫的<23種設計模式>,其實以前看

原创 淺談設計模式之三——Prototype模式

prototype模式即原型模式,同樣先上uml圖: uml解析:原型模式講的是什麼呢?原型模式講的其實就是淺拷貝跟深拷貝的問題。什麼是淺拷貝什麼是深拷貝呢,相信學過c++的都懂。凡涉及到一個類中的成員變量有指針的,一定會設

原创 淺談設計模式之八——Decorator模式

先上uml圖: 意圖:動態地給一個對象添加一些額外的職責。就增加功能來說,Decorator模式相比生成子類更爲靈活。 uml解析:裝飾者模式又名包裝器,顧名思義就是給某個對象添加一些功能,而不是給整個類添加一些功能。Co

原创 Linux makefile 教程 非常詳細 易懂

最近在學習Linux下的C編程,買了一本叫《Linux環境下的C編程指南》讀到makefile就越看越迷糊,可能是我的理解能不行。 於是google到了以下這篇文章。通俗易懂。然後把它貼出來,方便學習。

原创 git簡易教程 一看就會

很久之前知道git,也使用過,但一直挺困惑,打了命令行提交之後總不知處於什麼位置,也搞不懂這個可以純打命令行進行版本控制的軟件爲什麼這麼讓人着迷,很多高手都用github。這些天重新學習了一下,對git有了更深一層的瞭解,分享一下

原创 一些VC的快捷鍵以及調試技巧

1.檢測程序中的括號是否匹配 把光標移動到需要檢測的括號(如大括號{}、方括號[]、圓括號()和尖括號<>)前面,鍵入快捷鍵“Ctrl+]”。如果括號匹配正確,光標就跳到匹配的括號處,否則光標不移動,並且機箱喇叭還會發出一聲警告

原创 淺談設計模式之二——Builder模式

同樣地先上uml圖 解析uml:其實這裏應該是聚合而不是組合。Director和Builder是聚合關係,1對多,通過參數傳到Construct()之後,根據具體的Builder一步一步構造,之後可以通過GetProduct

原创 淺談設計模式之七——Composite模式

同樣地,先上uml圖: 組合模式的意圖:將對象組合合成樹形結構以表示“部分-整體”的層次結構。Composite使得用戶對單個對象和組合對象的使用具有一致性。 uml解析:leaf是葉節點,Composite可以理解爲是一

原创 LPSTR、LPWSTR、LPCSTR、LPCWSTR、LPTSTR、LPCTSTR的區分與轉化

首先在編譯程序時經常會遇到這種問題: [plain] view plaincopy在CODE上查看代碼片派生到我的代碼片 錯誤 1 error C2664: “CWnd::MessageBoxW”: 不能將參數 1 從“const

原创 UML類圖幾種關係總結

這是一篇很不錯的講uml的文章,轉自http://blog.csdn.net/tianhai110/article/details/6339565 在UML類圖中,常見的有以下幾種關係:泛化(Generalization),

原创 淺談設計模式之五——Adapter模式

這一節開始談談結構型模式。結構型模式包括:**適配器、橋接、組成、裝飾、外觀、享元、代理模式**7種設計模式。這一節說一下適配器模式,適配器模式可以分爲類適配器和對象適配器,類適配器其實就是多繼承,一般用對象適配器,因此這裏只講對

原创 銀行窗口排隊叫號系統實現

這是一個模擬銀行窗口排隊叫號調度系統,參考了網上兩篇文章,一篇java的和一篇linux c++的,然後我在windows下實現了它,開發工具是vs2008.在文章最後我會給出直接可編譯可執行代碼。 Java版參考:http://