原创 模板與泛型編程(一)

 1. 定義函數模板            template <typename T>            int compare(const T &v1, const T &v2)            {             

原创 容器與析構函數調用

 #include <vector>  using namespace std;  class CDemo{  public:  CDemo():str(NULL){}  ~CDemo(){if(str) delete [] s

原创 我的友情鏈接

51CTO博客開發

原创 判斷計算機的字節順序是little endian還是big endian

bool IsBig_Endian() //如果字節序爲big-endian,返回true; //反之爲   little-endian,返回false {     unsigned short test = 0x1122;     if

原创 gcc參數詳解

 gcc and g++分別是gnu的c & c++編譯器 gcc/g++在執行編譯工作的時候,總共需要4步   1.預處理,生成.i的文件[預處理器cpp]   2.將預處理後的文件不轉換成彙編語言,生成文件.s[編譯器egcs]  

原创 找出數組中第二大的數

 求一個數組中的最大元素是比較簡單的. int get_max_number(int *data, size_t size) { int max = data[0]; for(size_t i=1; i!=size; i++) {

原创 C++類的多重繼承與虛擬繼承

 派生類指定多個基類,這樣的繼承結構被稱做多重繼承。   舉個例子,交通工具類可以派生出汽車和船連個子類,但擁有汽車和船共同特性水陸兩用汽車就必須繼承來自汽車類與船類的共同屬性。  由此我們不難想出如下的圖例與代碼:   當一個派生類

原创 C++類的多重繼承與虛擬繼承

 派生類指定多個基類,這樣的繼承結構被稱做多重繼承。   舉個例子,交通工具類可以派生出汽車和船連個子類,但擁有汽車和船共同特性水陸兩用汽車就必須繼承來自汽車類與船類的共同屬性。  由此我們不難想出如下的圖例與代碼:   當一個派生類

原创 const 常量

 常量必須在構造函數的初始化列表裏面初始化或者將其設置成static.

原创 iPod classic

 

原创 一道挺不錯的面試題,判斷16位還是32位操作系統

 用C++寫個程序,如何判斷一個操作系統是16位還是32位的?不能用sizeof() 一、 16位的系統下: int i = 65536; cout << i;    //輸出0 int i = 65535; cout << i

原创 How to install software on linux

 1. RPM Package. Basically you can double click to install like EXE in window. 1) open a shell window, type rpm -qa XXX

原创 最近常用的Linux命令

 最近一直在用Ubuntu做一些東西, Linux天生適合開發, 所以一些開發工具當然不能不裝。 Ubuntu安裝GCC,G++, Make等, sudo apt-get install build-essential 安裝java6 

原创 composition 組合

 若在邏輯上A是B的“一部分”,則不允許B從A派生,而是要用A和其他東西組合出B。 例如眼(Eye)鼻(Nose)口(Mouth)耳(Ear)是頭(Head)的一部分,所以類Head應該由類Eye、Nose、Mouth、Ear組合而成,而

原创 判斷一個單鏈表是否有環

 很簡單的一種方法就是,設置兩個指針,一個每次遞增一步,一個每次遞增兩步,如果有環兩者必然重合。 struct node {     char val;     node *next; }; bool check_circle(