Time of Update: 2018-12-03
1.下列程式的輸出結果為:(B)#include<iostream.h>void main(){ char* a[ ] = { "hello", "the", "world"}; char** pa = a; pa++; cout<<”*pa<<endl;}A) theworld B) the C) ello D)
Time of Update: 2018-12-03
class A{public: A() { printf(" A "); } ~A() { printf(" ~A "); }};class B{public: B(A &a):_a(a) { printf(" B "); } ~B() { printf(" ~B "); }private: A _a;};int main(){ A a; B
Time of Update: 2018-12-03
引:讀取設定檔是很常見的,尤其在後台伺服器(linux、unix上)跑程式為了擴充性,都常用設定檔作為程式的輸入來完成不同的工作內容。本文提供了簡單的實現方法:話不多說,看函數:/* *parameter: cfgfilepath 檔案的絕對路徑名如: /user/home/my.cfg * key 文本中的變數名 * value 對應變數的值,用於儲存 * */#include
Time of Update: 2018-12-03
本文介紹筆者在C++開發中的單元測試實施之法,參考過Netbeans自動產生的單元測試代碼。 首先在通用的標頭檔中定義宏:#define _QSW_TEST #ifdef _QSW_TEST #define DLog(...) printf(__VA_ARGS__);printf("\n")#else #define Dlog(...)#endif
Time of Update: 2018-12-03
呼呼,最近很少寫部落格了,不是不想寫啊,感覺寫部落格有些浪費時間,畢竟一篇高品質的博文,必須花很多時間的。比如Xerces-c,光寫一個完整的例子就要花去兩三天,而且例子要參考的東西很多,比如Xerces-c的api、智能指標、Xerces-c的安裝、Xerces-c的標頭檔等等,我覺得這些東西真不是一篇博文能解決的。還好,我已經把例子上傳到google
Time of Update: 2018-12-03
原文寫的不錯,轉來收藏,轉自:http://wangyisouhuxin.blog.163.com/blog/static/761966592011072348700/?fromdm&fromSearch&isFromSearchEngine=yes 在nesc的代碼中,你會看到很多你不認識的資料類型,比如uint8_t等。咋一看,好像是個新的資料類型,不過C語言(nesc是C的擴充)裡面好像沒有這種資料類型啊!怎麼又是u又是_t的?很多人有這樣的疑問。論壇上就有人問:以*_t
Time of Update: 2018-12-03
:http://code.google.com/p/my-threads-pool/downloads/list---------------------------------------------割了---------------------------------------------------
Time of Update: 2018-12-03
這兩天在寫程式,看了一些文章,轉過來備忘。原文地址是:http://topic.csdn.net/u/20090716/10/ce4a7037-3c0d-40ae-af85-f702c78fcea3.html單精確度浮點數在機內佔4個位元組,用32位二進位描述。雙精確度浮點數在機內佔8個位元組,用64位二進位描述。浮點數在機內用指數型式表示,分解為:數符,尾數,指數符,指數四部分。數符佔1位二進位,表示數的正負。指數符佔1位二進位,表示指數的正負。尾數表示浮點數有效數字,0.xxxxxxx,但不
Time of Update: 2018-12-03
最近,linux上遇到string為漢字時,需要轉碼存入到資料庫中,將轉碼的函數及其方法記錄一下。見函數: 標頭檔是#include <iconv.h> //fromcode:源string使用的字元集,如"UTF-8";,對於漢字每個漢字為3個位元組儲存 //tocode:目的string使用的字元集,如"GB2312";,對於漢字每個漢字為2個位元組儲存 //in:需要轉碼的字串 //out:轉碼後的字串 int iconv_code(const
Time of Update: 2018-12-03
一、功能 將一個類的介面轉換成客戶希望的另外一個介面,解決兩個已有介面之間不匹配的問題。Adapter模式使得原本由於介面不相容而不能一起工作的那些類可以一起工作。 二、結構圖 (1)class adapter (2)object adapter 三、實現 和其他很多模式一樣,學習設計模式的重點是學習每種模式的思想,而不應拘泥於它的某種具體結構圖和實現。因為模式是靈活的,其實現可以是千變萬化的,只是所謂萬變不離其宗。
Time of Update: 2018-12-03
AbstractFactory模式就是用來解決這類問題的:要建立一組相關或者相互依賴的對象。 AbstractFactory模式關鍵就是將這一組對象的建立封裝到一個用於建立對象的(ConcreteFactory)中,維護這樣一個建立類總比維護n多相關對象的建立過程要簡單的多。 UML結構圖: 抽象基類: 1)ProductA,ProductB:分別代表不同類型的產品,而它們的衍生類別則是這種產品的一個實現. 2)AbstractFactory:生產這一系列產品的一個抽象工廠,它的衍生類別
Time of Update: 2018-12-03
意圖:表示一個作用與某對象結構中的各元素的操作,它使你可以在不改變各元素的類的前提下定義作用於這些元素的新操作UML圖:適用:一個對象結構包含很多類對象,他們有不同的介面,而你想對這些對象實施一些依賴於其具體類的操作需要對一個對象結構中的對象進行很多不同的並且不相關的操作,而你想避免讓這些操作汙染這些對象的類,Vi s i t o r 使得你可以將相關的操作集中起來定義在一個類中。當該對象結構被很多應用共用時,用Vi s i t o r
Time of Update: 2018-12-03
許多不錯的例子內容:第一章視窗的動畫效果帶有工具列的對話方塊單文檔啟動介面實現全螢幕顯示實現透明表單為對話方塊程式製作真彩色啟動介面為對話方塊添加右鍵菜單為應用程式添加多語言菜單隱藏應用程式在工作列上的顯示在視窗中使用多個視圖類動態切分視窗第二章捕獲滑鼠繪圖捕捉螢幕映像擷取螢幕上顏色介面上實現3D文字列舉當前系統的字型判知BMP圖片的大小圖片的伸縮顯示顯示資源位元影像遊覽大圖第三章CArray類的應用CListCtrl 控制項的應用IP
Time of Update: 2018-12-03
意圖:提供一種方法順序訪問一個彙總對象中各個元素,而又不暴露該對象的內部表示UML圖:適用:訪問一個彙總對象的內容而無需暴露它的內部表示支援對彙總對象的多種遍曆為遍曆不同的彙總結構提供一個統一的介面解析:Iterator 幾乎是大部分人在初學C++的時候就無意之中接觸到的第一種設計模式,因為在STL之中,所有的容器類都有與之相關的迭代器.以前初學STL的時候,時常 在看到講述迭代器作用的時候是這麼說的:提供一種方式,使得演算法和容器可以獨立的變化,而且在訪問容器物件的時候不必暴露容器的內部細節,
Time of Update: 2018-12-03
//方案— 優點:僅使用C標準庫;缺點:只能精確到秒級#include <time.h> #include <stdio.h> int main( void ) { time_t t = time(0); char tmp[64]; strftime( tmp, sizeof(tmp), "%Y/%m/%d %X %A 本年第%j天 %z",localtime(&t) ); puts( tmp ); return 0;
Time of Update: 2018-12-03
作用:保證一個類僅有一個執行個體,並提供一個訪問它的全域訪問點。UML結構圖:解析:Singleton 模式其實是對全域靜態變數的一個取代策略,上面提到的Singleton模式的兩個作用在C++中是通過如下的機制實現的:1)僅有一個執行個體,提供一個類 的靜態成員變數,大家知道類的靜態成員變數對於一個類的所有對象而言是惟一的 2)提供一個訪問它的全域訪問點,也就是提供對應的訪問這個靜態成員變數的靜態成員函數,對類的所有對象而言也是惟一的.在C++中,可以直接使用類域進
Time of Update: 2018-12-03
作用:定義一個用於建立對象的介面,讓子類決定執行個體化哪一個類。Factory Method 使一個類的執行個體化延遲到其子類。UML結構圖:抽象基類:1)Product:建立出來的對象的抽象基類.2)Factory建立對象的Factory 方法的抽象基類.介面函數:1)Creator::FactoryMethod:純虛函數,由衍生類別實現,建立出對應的Product.解析:在
Time of Update: 2018-12-03
一、請填寫BOOL , float, 指標變數 與“零值”比較的 if 語句。 請寫出 BOOL flag 與“零值”比較的 if 語句。標準答案:if ( flag )if ( !flag )如下寫法均屬不良風格。if (flag == TRUE) if (flag == 1 ) if (flag == FALSE) if (flag == 0) 請寫出 float x 與“零值”比較的 if 語句。標準答案樣本:const float EPSINON = 0.00001;if ((x
Time of Update: 2018-12-03
作用:將一個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。UML結構圖:適用於以下情況:1)當建立複雜物件的演算法應該獨立於該對象的組成部分以及它們的裝配方式時。 2)當構造過程必須允許被構造的對象有不同的表示時。抽象基類:1)Builder:這個基類是全部建立對象過程的抽象,提供構建不同組成部分的介面函數介面:1)Builder::BuildPartA,Builder::BuildPartB:是對一個對象不同部分的構建函數介面,Builder的衍生類別來具體實現.另
Time of Update: 2018-12-03
作用:用原型執行個體指定建立對象的種類,並且通過拷貝這些原型建立新的對象。UML結構圖:抽象基類:1)Prototype:虛擬基類,所有原型的基類,提供Clone介面函數介面函數:1)Prototype::Clone函數:純虛函數,根據不同的衍生類別來執行個體化建立對象.解析:Prototype 模式其實就是常說的"虛擬建構函式"一個實現,C++的實現機制中並沒有支援這個特性,但是通過不同衍生類別實現的Clone介面函數可以完成與"虛擬構造