C/C++
進度條控件
摘要: Style Description
PBS_SMOOTH //平滑
PBS_VERTICAL //垂直
響應消息
PBM_DELTAPOS //一個進度條由一個指定的增量當前位置和重繪欄,以反映新的位置。
wParam=(的WPARAM)nIncrement
lParam = 0;
返回原來的位置。
閱讀全文
posted @
2011-11-30 20:42 Yu_ 閱讀(824) |
評論 (0) 編輯
C++讀寫流
摘要: 和C語言不同,C++對文件的操作有自己的方法。
C++對文件的操作主要是通過兩個類(ofstream---向文件中寫入數據。ifstream----從文件中讀取數據),通過指定類中的變量取值來達到對文件的操作。
ofstream類的構造函數(有好幾個,這個用的最多)ofstream::ofstream
ofstream( const char* szName, int nMode = ios::out, int nProt = filebuf::openprot )
szName:指定將要打開的文件名
nMode:指定打開的方式,有以下幾種取值
閱讀全文
posted @
2011-11-30 20:40 Yu_ 閱讀(441) |
評論 (0) 編輯
關于類的作用域 (全局域 、類域、作用域)
摘要: (1)、成員函數
成員函數有一個非成員函數不具有的屬性——它的類itsclass 指向成員函數的指針必須與向其賦值的函數類型匹配不是兩個而是三個方面都要匹配:
1 參數的類型和個數2 返回類型3 它所屬的類類型
例如類screen:short Screen::*ps_Screen = &Screen::_height;
數據成員指針在被用來訪問數據成員之前必須先被綁定到一個對象或指針上
// 所有指向類成員的指針都可以用0 賦值
int (Screen::*pmf1)() = 0;
int (Screen::*pmf2)() = &Screen::height;//或者可以這樣寫:int Screen::*pmf2 = &Screen::height;
注意:靜態類成員指針是該類的全局對象和函數,引用的是普通指針
(2)作用域
1.全局域、類域、局部域的區別
閱讀全文
posted @
2011-11-30 20:33 Yu_ 閱讀(753) |
評論 (0) 編輯
C++的一些基礎
摘要: 一、類型轉換
1、強制類型轉換::類型不同,而且不屬于基本數據類型(int double...)時,經常需要強制類型轉換
①、顯示強制類型轉換
TYPE b = (TYPE) a;
C++中強制類型轉換函數有4個:
const_cast(用于去除const屬性),
static_cast(用于基本類型的強制轉換),
dynamic_cast(用于多態類型之間的類型轉換),
閱讀全文
posted @
2011-11-30 20:32 Yu_ 閱讀(403) |
評論 (0) 編輯
C/C++內存中的數據對齊問題
摘要: 數據對齊,是指數據所在的內存地址必須是該數據長度的整數倍。比如DWORD數據的內存其實地址能被4除盡,WORD數據的內存地址能被2除盡。x86 CPU能直接訪問對齊的數據,當它試圖訪問一個未對齊的數據時,會在內部進行一系列的調整,這些調整對于程序來說是透明的,但是會降低運行速度,所以編譯器在編譯程序時會盡量保持數據對齊。
閱讀全文
posted @
2011-10-01 10:13 Yu_ 閱讀(550) |
評論 (0) 編輯
虛函數和多態 (二)
摘要: 是允許將父對象設置成為和一個或多個它的子對象相等的技術,比如Parent:=Child; 多態性使得能夠利用同一類(基類)類型的指針來引用不同類的對象,以及根據所引用對象的不同,以不同的方式執行相同的操作.
c++中多態更容易理解的概念為
閱讀全文
posted @
2011-09-30 23:17 Yu_ 閱讀(359) |
評論 (0) 編輯
虛函數和多態 (一)
摘要: 1、什么是虛函數?
①、虛函數必須是基類的非靜態成員函數
②、其訪問權限可以是protected或public。不能是private ,因為子類繼承時,子類不能訪問。
③、在編譯時是動態聯編的::編譯程序在編譯階段并不能確切知道將要調用的函數,只有在程序執行時才能確定將要調用的函數,為此要確切知道該調用的函數,要求聯編工作要在程序運行時進行,這種在程序運行時進行聯編工作被稱為動態聯編。 動態聯編規定,只能通過指向基類的指針或基類對象的引用來調用虛函數
2、定義形式。
virtual 函數返回值類型 虛函數名(形參表)
{ 函數體 }
純虛函數:virtual 函數名=0
3、虛函數內部機制。
①、每個實例對象里有自己的指針。
②、虛函數(Virtual Function)是通過一張虛函數表(Virtual Table)來實現的。
③、我們通過對象實例的地址得到這張虛函數表,然后就可以遍歷其中函數指針,并調用相應的函數。
閱讀全文
posted @
2011-09-30 21:58 Yu_ 閱讀(358) |
評論 (0) 編輯
類繼承和子類型 多繼承和虛擬繼承
摘要: 關于基類,派生類的相關補充:
1、 派生表中指定的類必須先被定義好,方可被指定為基類。
2、 派生類的前向聲明不能包括其派生表,而只需要類名即可。
3、 缺省的繼承是private。
4、 繼承而來的派生類的虛擬函數一般加上virtual較好,也可以省略。但基類中一定要聲明為virtual。
5、 對于基類的靜態成員,所有派生類對象都引用基類創建的這個相同,單一,共享的靜態成員,而不是創建該派生類的另一個獨立的靜態成員。
6、 友員關系不會被繼承,派生類沒有成為“向它的基類授權友誼的類”的友員。
閱讀全文
posted @
2011-09-30 16:18 Yu_ 閱讀(408) |
評論 (0) 編輯
深拷貝、淺拷貝 與拷貝構造函數的關系
摘要: 拷貝即是通常所說的復制(Copy)或克隆(Clone),對象的拷貝也就是從現有對象復制一個“一模一樣”的新對象出來。雖然都是復制對象,但是不同的復制方法,復制出來的新對象卻并非完全一模一樣,對象內部存在著一些差異。通常的拷貝方法有兩種,即深拷貝和淺拷貝,那二者之間有何區別呢?
我的理解是:
1、深拷貝和淺拷貝之間的區別在于是否復制了子對象。
2、如果一個類擁有資源(堆,或者是其它系統資源),,當這個類的對象發生復制過程的時候,資源重新分配,這個過程就是深拷貝,反之對象存在資源,但復制過程并未復制資源的情況視為淺拷貝。
閱讀全文
posted @
2011-09-27 01:24 Yu_ 閱讀(376) |
評論 (0) 編輯