Time of Update: 2018-12-04
條條大路通羅馬,一種需求,有很多種編碼方式可以實現,如果在實現的基礎上進行最佳化,豈不是更好。(1)foreach
Time of Update: 2018-12-04
什麼是序列化?簡單來說,序列化就是將對象執行個體的狀態轉換為可保持或傳輸的格式的過程。與序列化相對的是還原序列化,它根據流重構對象。這兩個過程結合起來,可以輕鬆地儲存和傳輸資料。 MFC裡有序列化類別CArchive,而當你脫離MFC編程時,要想實現序列化,怎麼辦?自己寫?恐怕沒必要,這裡有一個基於STL的C++庫,可以讓你很方便地完成這個功能:http://s11n.net/ 摘取其網站上的一段介紹:s11n (an abbreviation for serialization) is an
Time of Update: 2018-12-04
連結是出現:LIBCMTD.lib(crt0dat.obj) : error LNK2005: _exit 已經在 MSVCRTD.lib(MSVCR71D.dll) 中定義 等類似錯誤原因:Run-Time Library•Run-Time Library是編譯器提供的標準庫,提供一些基本的庫函數和系統調用。我們一般使用的Run-Time Library是C Run-Time Libraries。當然也有Standard C++ libraries。 C Run-Time
Time of Update: 2018-12-04
第九章
Time of Update: 2018-12-04
第八章 C++函數的進階特性對比C語言的函數,C++增加了重載、內聯、const和virtual四種新機制。其中重載和內聯機制既可用於全域函數也可用於類的成員函數,const與virtual機制僅用於類的成員函數。8、1函數重載的概念函數名相同,範圍相同,參數不同的幾個函數可構成重載。C/C++程式可忽略函數的傳回值,所以不可根據傳回值類型來區分重載函數。全域函數和成員函數因範圍不同,不能構成重載。當心隱式類型轉換導致重載函數產生二義性。如:void output( int x); //
Time of Update: 2018-12-04
第七章 記憶體管理主線是分配、使用、釋放。分配的話,分配多少合適,有多少可用,分配失敗怎麼處理。7、1記憶體的分配方式三種分配記憶體的方式:1) 從靜態儲存地區分配。記憶體在編譯時間已指派好,這塊記憶體在程式整個運行期間都存在。如全域變數,static變數。2) 在棧上建立。棧記憶體配置運算內建於處理器的指令集中,效率很高,但分配的記憶體容量有限。3) 從堆上分配,亦稱動態分配。運行時用new或malloc申請任意多的記憶體,程式員自己負責在何時free或delete記憶體。7、2
Time of Update: 2018-12-04
第十章 類的繼承和組合10.1繼承 【規則10-1-1】若類A和類B毫不相關,不可為了使B的功能更多些而讓B繼承A的功能和屬性。 【規則10-1-2】若在邏輯上B是A的“一種”,並且A的所有功能和屬性對B而言都有意義,則允許B繼承A的功能和屬性。10.2組合 【規則10-2-1】若在邏輯上A是B的“一部分”,則不允許B從A派生,而是要用A和其他東西組合成B。class Eye { public: void Look(void); };
Time of Update: 2018-12-04
第十一章 其他編程經驗11、1利用const提高函數的健壯性 const更大的魅力是它可修飾函數的參數、傳回值、甚至函數的定義體。11.1.1用const修飾函數的參數若參數作輸出用,無論是指標傳遞還是引用傳遞,都不能加const修飾,否則該參數將失去輸出功能。const只能修飾輸入參數:Ø
Time of Update: 2018-12-04
第三章 命名規則命名規則應該是給變數、函數和類的命名規則。耳聞過“匈牙利”命名規則。其主要思想是:在變數和函數名中加入首碼以增進人們對程式的理解。如所有字元變數都以’ch’為首碼。若一個變數由ppch開頭,則說明它是指向字元指標的指標。“匈牙利”法最大的缺點就是繁瑣,如int i, j, k;若用“匈牙利”命名規則,則應是int iI, iJ,
Time of Update: 2018-12-04
如,c可執行檔的產生分為方框中的四個步驟:1、預先處理:預先處理的結果還是一個c檔案,只不過以.i為尾碼。所謂預先處理,處理的是以#開頭的東西,比如說#include<stdio.h>,前置處理器會讀取檔案stdio.h將檔案內容直接插入在#include<stdio.h>,處。此外還會處理,#define宏。2、ccl將.i轉換為組合語言(組合語言),每條彙編語句都描述一條機器指令。組合語言為不同編譯器、不同進階語言提供一種通用的輸出語言。比如說C和Fortran產生的
Time of Update: 2018-12-04
第五章 常量5、1常量類型 C語言用#define啦定義常量(稱為宏常量)。C++除了#define外還可用const來定義常量(稱為const常量)。 const常量有資料類型,而宏常量沒有資料類型。編譯器可對前者進行型別安全檢查。而對後者只進行字元替換,沒有型別安全檢查。所以在C++中只使用const常量而不使用宏常量。5、2常量定義規則
Time of Update: 2018-12-04
看這本書主要是想規範下自己的編程習慣,所以看完只是開始,以後在實踐中多運用。美好的期待。簡介:導讀中說1-6章,難度低,重細節。7-11章是專題論述,多思考。那就先看前6章。再做附錄的測試題。7-11一天看一章,不知道會不會太誇張。看書規劃調整版本1:今天看1-2章,明天3-4,後天5-6。看書規劃調整版本2:前六章複習到周一。看書規劃調整版本3:2月22號看完,25號要出差。第一章
Time of Update: 2018-12-04
在做C#與其它程式通訊的系統時,往往會使用struc操作結構化的資料(如資料包等)。本文簡要提出一些使用思路,歡迎各位大牛賜教。一、STRUCT結構設計當資料的結構確定時,總結為下面兩種情況:1、資料長度確定(包括字串):此時可以直接利用struct來構造資料包,比如: [StructLayout(LayoutKind.Sequential, Pack = 1)] struct THeader { public short
Time of Update: 2018-12-04
int main( ){ char str0[8]={'a','b','c','d','e','f','i','g'}; char str1[]="abcdefig"; char str2[]="01234/056789" ; char str3[]="abcse/0fgkij"; printf("strlen(str0)=%d/n",strlen(str0)); printf("strlen(str1)=%d/n",strlen(str1));
Time of Update: 2018-12-04
通過Visual C#.NET建一個DTS任務 本文描述了如何利用Visual C#.net 建立一個DTS 自訂的任務。你可以通過C#.net建立自訂的任務的方式擴充DTS的功能。之後你可以安裝並註冊任務,他講出現在DTS設計其中,就像預設的DTS任務。總之,你能夠使用.NET Framework建立自訂的任務。 在本文中除了講建立一個DTS自訂任務外,還包括一下部分內容: 1、這篇文章中自訂的代碼分為編譯、註冊和安裝自訂任務; 2、這部分一個有特色的部分就是你可以運行自訂的任務;
Time of Update: 2018-12-04
windows對象並不是我們平時所說的“面對對象”程式設計中的“類的對象”,而是一種windows資源實體,如畫筆、字型等,而對這些windows對象我們用控制代碼來標識它們。而C++對象則是真正的“物件導向”思想中的“類的對象”。在windows編程中,除了普通的“類的對象”外,用得最多的“C++類的對象”應該是MFC對象了(如果你是用MFC編程的話),MFC對象是指“封裝了windows對象的C++對象”。就拿CWnd類來說,我們定義一個CWnd類的對象myWnd後,我們不能直接對它進行顯示
Time of Update: 2018-12-04
對於迭代器,有另一種方法使用流和標準函數。理解的要點是將輸入/輸出流作為容器看待。因此,任何接受迭代器參數的演算法都可以和流一起工作。 範例程式碼:#include <iostream.h>#include <stdlib.h> // Need random(), srandom()#include <time.h> // Need time()#include <algorithm> // Need sort(),
Time of Update: 2018-12-04
C++ Technical Report 1 (TR1)是ISO/IEC TR 19768, C++ Library Extensions(函式庫擴充)的一般名稱。TR1是一份檔案,內容提出了對C++標準函式庫的追加項目。這些追加項目包括了Regex、智能指標、雜湊表、隨機數產生器等。TR1自己並非標準,他是一份草稿檔案。然而他所提出的項目很有可能成為下次的官方標準。這份檔案的目標在於「為擴充的C++標準函式庫建立更為廣泛的現成實作品」。 C++
Time of Update: 2018-12-04
c++中的explicit關鍵字用來修飾類的建構函式,表明該建構函式是顯式的,既然有"顯式"那麼必然就有"隱式",那麼什麼是顯示而什麼又是隱式的呢? 如果c++類的建構函式有一個參數,那麼在編譯的時候就會有一個預設的轉換操作:將該建構函式對應資料類型的資料轉換為該類對象,如下面所示:class MyClass{public:MyClass( int num );}....MyClass obj = 10; //ok,convert int to
Time of Update: 2018-12-04
先說說cxxtest這個測試架構:用cxxtest來編寫測試案例時,我們需要寫的只是一個.h檔案,在這個檔案裡include你要測試的類或函數所在的標頭檔,然後寫各種測試函數。與該.h檔案對應的.cpp檔案是用cxxtest內建的一個指令碼cxxtestgen.pl來產生的(指令碼調用方法請看cxxtest手冊),然後我們就得到了一個.h檔案和一個.cpp檔案,用gcc/g++編譯,得到一個可執行檔,運行此檔案,就執行了你所編寫的測試案例。 使用Google