Time of Update: 2018-12-03
Factory 方法模式(factory method) :定義一個用於建立對象的介面,讓子類決定執行個體化哪一個類。Factory 方法使一個類的執行個體化延遲到他的子類。 簡單原廠模式和Factory 方法模式的區別:1.簡單原廠模式簡單原廠模式的最大優點在於工廠類中包含了必要的邏輯判斷,根據用戶端的選擇條件動態執行個體化相關的類,對於用戶端來說,去除了與具體產品的依賴。2.Factory 方法模式Factory
Time of Update: 2018-12-03
Nucleus PLUS嵌入式作業系統的簡單介紹Nucleus PLUS嵌入式作業系統是目前最受歡迎的作業系統Nucleus PLUS 是為即時嵌入式應用而設計的一個搶先式多任務作業系統核心,其95%的代碼是用ANSIC寫成的,因此非常便於移植並能夠支援大多數類型的處理器。從實現角度來看,Nucleus PLUS 是一組C函數庫,應用程式代碼與核心函數庫串連在一起,產生一個目標代碼,下載到目標板的RAM中或直接燒錄到目標板的ROM中執行。在典型的目標環境中,Nucleus PLUS
Time of Update: 2018-12-03
1. VPN related source code in Froyo.1.1 java layer:a. UI source code:packages/apps/Settings/src/com/android/settings/vpnb. vpn server source code:frameworks/base/vpn/java/android/net/vpnframework/base/packages/vpnservices/src/com/android/server/vpn1.
Time of Update: 2018-12-03
operator new在無法完成記憶體配置請求時會拋出異常(以前的做法一般是返回0,一些舊一點的編譯器還這麼做,我們也可以恢複到舊的編譯器方式例如:char * lp = new char[10000000]; 如果分配失敗,在舊的編譯器下會返回0,但是在新的編譯器下會拋出異常std::bad_alloc我們也可以用在新的編譯器下不拋出異常而返回0char * lp = new(nothroe) char[10000000];
Time of Update: 2018-12-03
#import 指令1. C++中使用 COM 簡單的方法是用 #import 導入 type library2. # import 指令將 COM 產生對應的 C++類別,可以用接近於VBScript和Visual Basic的語句操作 COM3. 使用 #import 命令就可以將該檔案導入到我們的程式碼中。type library 的內容將被轉換為描述了 COM Interface 的 COM smart pointer4. 語法 #import "filename"
Time of Update: 2018-12-03
當我們規定類只能在堆上分配記憶體時,就可以將解構函式聲明為私人的。class alloc{public: alloc():private: ~alloc();}; 如果在棧上分配空間,類在離開範圍時會調用解構函式釋放空間,此時無法調用私人的解構函式。如果在堆上分配空間,只有在delete時才會調用解構函式。 可以添加一個destroy()函數來釋放,從而解決不能在解構函式中添加delete的問題。class alloc{public: alloc(): destroy(){
Time of Update: 2018-12-03
依賴倒轉原則A.高層模組不應依賴低層模組,兩個都應該依賴抽象。B.抽象不應依賴細節,細節應該依賴抽象。說白了就是要針對介面編程,不要對是想編程。 裡氏代換原則(LSP)子類型必須能夠替換掉它們的父類型說白了就是一個軟體實體如果使用的是一個父類的話,那麼它一定使用於子類,且它察覺不出父類對象和子類對象的區別。也就是說在軟體裡面,把父類替換成他的子類,程式的行為沒有變化,簡單的說,子類必須能夠替換掉它們的父類。正是由於這個原則,使得繼承服用成為可能,只有當子類可以替換掉父類,軟體單位的功能不受到影響
Time of Update: 2018-12-03
在做UDP通訊的過程中,伺服器端綁定IP和PORT: m_stLocalAddr.sin_family = AF_INET; m_stLocalAddr.sin_addr.s_addr = htonl(INADDR_ANY); m_stLocalAddr.sin_port = htons( 6000); m_hSocket = socket( PF_INET, SOCK_DGRAM, 0 );if (SOCKET_ERROR == bind (m_hSocket, (
Time of Update: 2018-12-03
迪米特法則也叫最少知識原則如果兩個類不必彼此直接通訊,那麼這兩個類就不應當發生直接的相互作用。如果其中一個類需要調用另一個類的某一個方法的話,可以通過第三者轉寄這個調用。迪米特法則首先強調的前題是在類的結構設計上,每一個類都應當盡量降低成員的存取權限,也就是說,一個類封裝好自己的private狀態,不需要讓別的類知道的欄位或行為就不要公開。
Time of Update: 2018-12-03
鄙視加班。除非我是在開發一個偉大的產品,例如是魔獸世界。又或者能給雙倍工資。否則在碼一個一般的產品或者垃圾產品,就是把磚頭從一邊搬到另一邊,最多就是塗點料。碼多了,只是碼得快,碼得結實而已。頂多從一個碼農升級到另一個碼農,或者,換身衣裳,但還是改不了碼工的名。你就是資本家剝削的對象,你的思想永遠停留在被奴隸者和窮人思想上。不會創造也不會設計。你碼下去碼不出帝國大廈的結構。不停地碼會剝削你的人生,剝削你的青春。你將青春獻給了磚頭,而不是去設計機器,讓機器去搬磚頭。你不會有時間去學習建築的設計,和探
Time of Update: 2018-12-03
1.來自kakuyouhttp://www.icarus.com/eda/verilog/開源的verilog
Time of Update: 2018-12-03
二維數組的動態分配和刪除 首先,動態支援數組的分配,必須用 new 來進行建立一段堆記憶體,其它的存貯地區不允許動態分配的產生。 其次,C++並沒有提供真正的動態多維陣列文法,想動態分配數組,必須通過一維動態數組組合形成一個類似多維陣列的存貯形式,並不像靜態分配多維陣列,它們的用法雖說有些地方 有相似之處,但不完全相同。 再次,有些網友有一些很BT的分配方式。 例如: int (*p)[4] = new int[3][4];
Time of Update: 2018-12-03
原型模式:用原型執行個體指定建立對象的種類,並且通過拷貝這些原型來建立新的對象。原型模式其實就是從一個對象再建立另外一個可定製的對象,而且不需知道任何建立的細節。 我認為原型模式在C++中其實就相當於拷貝建構函式,clone執行的是淺拷貝,copy執行的是深拷貝。原型模式的基本代碼: #include <iostream> #include <string>
Time of Update: 2018-12-03
因為對C#不是很熟,所以將C#的程式轉成了C++的。 // 一個超市打折的執行個體#include "stdafx.h"#include "stdio.h"//抽象類別class CashSuper{public: virtual double acceptCash(double money) = 0;};//正常收費子類class CashNormal : public CashSuper{public: virtual double acceptCash(double
Time of Update: 2018-12-03
裝飾模式動態給一個對象添加一些額外的職責,就增加功能來說,裝飾模式比產生子類更靈活。 一般的實現代碼class Component{public: //純虛類 virtual void Operation() = 0;};class ConcreteComponent : public Component{public: virtual void Operation() { cout << "具體對象的操作"
Time of Update: 2018-12-03
UDP一次發送資料包的大小,TCP一次發送資料包的大小。MTU傳輸單元最大值,這個傳輸單元最大值實際上和鏈路層協議有著密切的關係,EthernetII幀的結構DMAC+SMAC+Type+Data+CRC由於乙太網路傳輸電氣方面的限制,每個乙太網路幀都有最小的大小64bytes最大不能超過1518bytes,對於小於或者大於這個限制的乙太網路幀我們都可以視之為錯誤的資料幀,一般的乙太網路轉寄裝置會丟棄這些資料幀。由於乙太網路EthernetII最大的資料幀是1518Bytes這樣,刨去乙太網路幀
Time of Update: 2018-12-03
什麼是模組狀態? 在每個使用了Microsoft Foundation Classes (MFC)的模組(EXE,DLL)中,都存在一種“全域”資料,MFC正是依靠這種全域資料才能執行正確的操作。這種全域資料就叫做MFC 模組狀態。 例如,MFC應用程式經常使用下面的代碼從資源檔中載入字串: CString str; str.LoadString(IDS_MYSTRING)
Time of Update: 2018-12-03
1 語言定製1.1 ICU4C1.1.1 ICU4C簡介ICU4C(ICU for C,http://site.icu-project.org/)是ICU在C/C++平台下的版本, ICU(International Component for Unicode)是基於"IBM公用許可證"的,與開源組織合作研究的,
Time of Update: 2018-12-03
關於函數的調用規則(呼叫慣例),大多數時候是不需要瞭解的,但是如果需要跨語言的編程,比如VC寫的dll要delphi調用,則需要瞭解。 microsoft的vc預設的是__cdecl方式,而windows
Time of Update: 2018-12-03
trie或者prefix tree(首碼樹),是一種有序樹資料結構,它通常被儲存在一個以字串為關鍵字的聯合數組中。於二叉搜尋樹不同,在樹裡沒有結點儲存與結點相關聯的關鍵字。它是用它在樹中的位置展示與它相關的關鍵字。任何一個結點的所有子結點有一個字串首碼與結點相關聯,根與Null