Time of Update: 2018-12-07
很多非泛型集合類都有對應的泛型集合類,下面是常用的非泛型集合類以及對應的泛型集合類:非泛型集合類泛型集合類ArrayListList<T>HashTableDIctionary<T>QueueQueue<T>StackStack<T>SortedListSortedList<T>我們用的比較多的非泛型集合類主要有 ArrayList類 和 HashTable類。我們經常用HashTable
Time of Update: 2018-12-07
一、前言gtest提供了多種事件機制,非常方便我們在案例之前或之後做一些操作。總結一下gtest的事件一共有3種:1. 全域的,所有案例執行前後。2. TestSuite層級的,在某一批案例中第一個案例前,最後一個案例執行後。3. TestCase層級的,每個TestCase前後。二、全域事件要實現全域事件,必須寫一個類,繼承testing::Environment類,實現裡面的SetUp和TearDown方法。1. SetUp()方法在所有案例執行前執行2.
Time of Update: 2018-12-07
C#方法1:執行個體構造器和類2:執行個體構造器和結構3:類型構造器4:操作符重載方法5:轉換操作符方法6:擴充方法 7:部分方法 這篇部落格的內容基本上是CLR via C#中第八章
Time of Update: 2018-12-07
Effective C++ 類與函數的設計和申明在看《Effective C++》這本書的過程中,我無數次的發出感歎,這他媽寫得太好了,句句一針見血,直接說到點上。所以決定把這本書的內容加上自己的理解寫成5篇部落格,我覺得不管你是否理解這些條款,都值得你先記下來。下面的索引對應的是書中的章節。18:努力讓介面完美且最小化19:區分member functions,non-member functions和friend functions三者20:避免將data
Time of Update: 2018-12-07
在看《Effective C++》這本書的過程中,我無數次的發出感歎,這他媽寫得太好了,句句一針見血,直接說到點上。所以決定把這本書的內容加上自己的理解寫成5篇部落格,我覺得不管你是否理解這些條款,都值得你先記下來。下面的索引對應的是書中的章節。 11:如果class內動態配置有記憶體,請為此class聲明一個copy
Time of Update: 2018-12-07
第八講 索引器與操作符重載南京郵電學院 李建忠(cornyfield@263.net)索引C#銳利體驗 "Hello,World!"程式C#語言基礎介紹Microsoft.NET平台基礎構造類與對象 構造器與析構器方法域與屬性索引器與操作符重載 數組與字串特徵與映射COM互操作 非託管編程與異常處理用C#編織未來--C#編程模型概述索引器 索引器(Indexer)是C#引入的一個新型的類成員,它使得對象可以像數組那樣被方便,直觀的引用。索引器非常類似於我們前面講到的屬性,但索引器可以有參數列表,
Time of Update: 2018-12-07
The member variables of class types are automatically set to an appropriate default value. Thisvalue will differ based on the exact data type; however, the rules are simple:• bool types are set to false.• Numeric data is set to 0 (or 0.0 in the case
Time of Update: 2018-12-07
//表示調用了(nUserId,nProgramId,dtCardValid,nPcIndex,0) 這個參數形式的建構函式 :this()CodeCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> public Consume( Int32 nUserId, Int32 nProgramId, DateTime dtCardValid,
Time of Update: 2018-12-07
Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->#include <stdio.h>#include <windows.h>#include <wininet.h>#define MAXSIZE 1024#pragma comment(lib, "Wininet.lib") void urlopen(_TCHAR*
Time of Update: 2018-12-07
C#是一門年輕的語言,不像C,C++那麼源遠流長,而C#的一個重要特點是和.net Framework這個強大的平台結合了起來,使得我們在使用C#進行開發的時候得心應手,據說.net Framework的代碼有幾百萬行之多。這裡也不得不佩服一下這個架構,.net
Time of Update: 2018-12-07
記憶體回收還得從根說起,就像生兒育女一樣。根:根是一個位置,存放一個指標,該指標指向託管堆中的一個對象,或是一個null
Time of Update: 2018-12-07
1:JIT(即時編譯)。一個方法在第一次調用時JIT會把改方法的IL代碼轉換成CPU指令,再次調用該方法時就只需執行對應的指令。方法第一次被調用的過程大致是:1獲得方法的IL代碼;2:分配記憶體;3:將IL代碼轉換成CPU指令存在2分配的記憶體中;4:將方法表中對應該方法的指標指向2分配的記憶體;5:跳轉到2分配的記憶體執行其中的指令,即該方法的CPU指令。 2:as的效能高於is。Is的作用是判斷當前類型與目標類型是否相容,即是否是同一類型或者目標類型是當前類型的父類型。強制類型轉換也要判斷類
Time of Update: 2018-12-07
首先先看一段MSDN上的樣本程式:列印一個樹中所有節點名稱MSDN上遍曆樹節點的樣本程式Code highlighting produced by Actipro CodeHighlighter
Time of Update: 2018-12-07
C#學習筆記(一):C#與C++文法的一些不同 1,C#中沒有了"::"的網域作業符,全部用了"."了。但是繼承還是用的":",C#的"::"是用作命名空間別名的修飾符。 2,在C#中變數使用前必須初始化,程式員顯式的或者編譯器自動的。其中:變數是類或者結構中的欄位,如果沒有顯式初始化,則在預設建立這些變數的時候其值就是0。然而方法的局部變數必須在代碼 中顯式初始化。(這與C++中不同)。 3,例如對於下面語句:SomeType
Time of Update: 2018-12-07
這是一個基於windows的,用C++編寫的用戶端伺服器程式,適合初學者,高手誤入.源碼必共用思路是這樣的.啟動伺服器,伺服器啟動後會建立一個子線程,用於向用戶端發送資訊.用一個死迴圈用於接收用戶端的請求,用戶端請求成功後,會將用戶端的串連儲存到一個集合中,下面會詳細介紹這個儲存用戶端串連的類.用戶端串連成功後,伺服器會建立一個子線程用於接收用戶端的資訊,用戶端同樣也會建立一個子線程接收伺服器的資訊.這樣用戶端和伺服器就能進行通訊,如果有哪一方退出,另一方對應的接收資料的線程就會自動終止.退出一
Time of Update: 2018-12-07
一、 具名引數和選擇性參數 static void Print(string enName, cnName="李飛“, int age=25){...}Print("Prime Li");Print("Prime Li", "李飛");Print("Prime Li", "李飛", 25);Print(enName:"Prime Li");Print(”Prime Li", cnName:"李飛", age:25);規則: 1. 非選擇性參數必須首先聲明。 2.
Time of Update: 2018-12-07
1. 條件編譯條件編譯是指預先處理根據測試的結果來包含或排除程式的片段。2. #if和#endif也不多說,舉個例子就懂了。#define DEBUG 1int main (void){#if DEBUG printf("Hello world");#endif return 0;}其實效果就是類似於這樣的代碼:int main (void){ int debug=1; if(debug) printf("Hello world");
Time of Update: 2018-12-07
今早看到了《你真的瞭解a ^= (b ^= (a ^= b))嗎?》一文,文章中提到了一個有趣的運算式:a ^= (b ^= (a ^= b)); 很簡單的一個程式: 1 int a = 2; 2 int b = 9; 3 a ^= (b ^= (a ^= b)); 4 Console.WriteLine("{0}, {1}", a.ToString(), b.ToString());最後的運算結果不是預期的9,2,而是0,2。同時,還有1個運算式:
Time of Update: 2018-12-07
經典就是經典,不論多少年,經典永遠不會改變。語言,架構總有一天會過時,但是唯獨經典永遠存在。這就是研究這些經典演算法的永恒。當我這樣一個.net程式員去應聘Java, C++,
Time of Update: 2018-12-07
1. 動態記憶體分配先來介紹三個動態記憶體分配的函數:malloc,calloc和realloc。說來慚愧,以前只知道malloc。現在來看下他們的區別:malloc:最常用的分配記憶體塊,但是不對記憶體進行初始化。calloc:分配記憶體塊,但是對記憶體塊進行清零操作,這就造成此函數的效率要比malloc要低。realloc:調整(增加或者減少)之前分配記憶體塊的大小。由於上面的函數只是開闢了一段記憶體,因此無法知道你要利用這段記憶體來儲存什麼類型的資料,因此只是返回一個void *類型的值,