原创 用streambuf簡單封裝socket

C++的I/O流是很強大的. 一方面在於易於使用, 類型安全. 另一方面在於容易擴展. 前幾天嘗試了一下用streambuf來封裝客戶端使用的sock

原创 TC2.0庫函數大全

分類函數,所在函數庫爲ctype.h int isalpha(int ch) 若ch是字母('A'-'Z','a'-'z')返回非0值,否則返回0 i

原创 聲明和定義的區別

聲明(declaration)引入一個名字,而定義(definition)給出程序中各個實體(entity,比如函數,類型等)的完整唯一的描述。一個聲

原创 C/C++的左值和右值

0    左值性(lvalueness)在C/C++中是表達式的一個重要屬性。只有通過一個左值表達式才能 來引用及更改一個對象(object)的值。(某些情況下,右值表達式也能引用(refer)到某一 個對

原创 職業規劃---面向瓶頸

原文http://bbs.chinaunix.net/thread-1078917-1-2.htmlinnovate511 發表於 2008-4-12 00:51 做IT的都知道現在軟件分有面向過程,面向對

原创 二維數組new小結

1.      A (*ga)[n] = new A[m][n];     ...     delete []ga; 缺點:n必須是已知 優點:調用直觀,連續儲存,程序簡潔(經過測試,析構函數能正確調用)

原创 模板特化降低代碼膨脹

以下內容根據TC++PL 13.5 Specialization一節。          考慮定義了模板Vector<T>之後,我們可以定義     Vector<int *>     Vecotr<cha

原创 VC++動態鏈接庫(DLL)編程深入淺出(zz)

1.概論   先來闡述一下DLL(Dynamic Linkable Library)的概念,你可以簡單的把DLL看成一種倉庫,它提供給你一些可以直接拿來用的變量、函數或類。在倉庫的發展史上經歷了“無庫-靜態鏈接庫-動態鏈接庫”的時代。  

原创 new的六種重載形式

當寫出 p = new P(); 這樣的代碼的時候, 實際上有兩步操作, 首先分配內存, 然後在分配好的內存之上初始化類成員. 第二步是有構造函數完成的, 第一步就是new函數的工作. 全局的new有六種重

原创 C++辨析

                        C++辨析系列談                        ·鄭力羣·yesky   static 是C++中很常用的修飾符,它被用來控制變量的存儲方式和

原创 C/C++中的序列點(待讀)

0. 什麼是副作用(side effects) C99定義如下 Accessing a volatile object, modifying an object, modifying a file, or 

原创 好習慣從現在開始

希望在工作中能養成一些好習慣:1.每天記賬  公家的、個人的,  一來免得時間長了記不清了,  二來養成節約得好習慣.2.記錄心得  勤思考,多總結。  記得做得好的地方,辦得漂亮的事情,積累信心,爲以後的

原创 T a(v);和T a = v;的區別

本文所說的類型T均指UDT,非built-in類型 構造一個對象,有如下三種形式: 1。T a; 這個沒什麼好說的,調用default ctor來構造a 不過要注意的是,要麼T就一個ctor也沒有,編譯器合

原创 做IS5到IS12升級的一些雜想

1。一個產品最好提供各版本的歷史記錄,和各版本的改進之處,以及升級方式。比如installshield,有多個版本,從IS5.X到IS12到現在的IS2012,經歷了很多的版本,像IS12的原來的網站現在已經不存在了。如果一個公司原來用I

原创 const volatile的使用

volatile修飾符告訴complier變量值可以以任何不被程序明確指明的方式改變,最常見的例子就是外部端口的值,它的變化可以不用程序內的任何賦值語句就有可能改變的,這種變量就可以用volatile來修飾