在工程中建立若干使用者定義的
標頭檔案.h
和源程式檔案.cpp
。如果源程式檔案中有編譯預處理指令,則首先經過編譯預處理生成臨時檔案存放在記憶體,之後對臨時檔案進行編譯生成
目標檔案.obj
,編譯後臨時檔案撤銷。所有的目標檔案經聯結器連線最終生成乙個完整的
可執行檔案.exe
。下圖是乙個多檔案系統的開發過程。
不帶引數的巨集定義:用來產生與乙個字串(即巨集名)對應的常量字串,格式為:
#define 巨集名 常量串
帶引數的巨集定義:帶參巨集定義的形式很象定義乙個函式,格式為:
#define 巨集名(形參表) 表示式串
條件編譯指令包括:
#if、#else、#ifdef、#ifndef、#endif、#undef
等。可分為兩類:
用巨集名作為編譯的條件,格式為:
#ifdef《巨集名》
《程式段1>
[#else
《程式段2>]
#endif
用表示式的值作為編譯條件,格式為:
#if 《表示式》
《程式段1>
[#else
《程式段2>]
#endif
類定義的更關鍵部分是對資料成員的操作。這可以用函式來完成。這些函式也作為類的成員存在!
class cgoods
; //注意一定要有;
這個描述商品的方案中,在類中引進了
成員函式
(或稱函式成員
)(member function),也就是函式也成了資料(類)中的
成員。成員函式可以直接使用類定義中的任一成員,可以處理
資料成員
,也可呼叫其他
函式成員
。類把資料(事物的屬性)和函式(事物的行為——操作)
封裝為乙個整體。
在前面,只對成員函式作了乙個宣告,或者講只給出了函式的原型,並沒有對函式進行定義。函式定義通常在類的說明之後進行。
商品類cgoods中的成員函式可以如下定義:(在前面的**後加上以下部分)
void cgoods::registergoods(char* name,int amount, float price)
//登記新商品
類是一種資料型別,定義時
系統並不為類分配儲存空間
,類只是乙個樣板,以此樣板可以在記憶體中開闢出乙個個同樣結構的例項——物件,
系統為物件分配記憶體
。◆ 1、什麼是建構函式
建構函式是特殊的public型成員函式,其特徵如下:
函式名與類名相同。
建構函式無函式返回型別說明。注意是沒有而不是void,即什麼也不寫,也不可寫void!實際上建構函式有返回值,返回的就是建構函式所建立的物件。
在程式執行時,當新的物件被建立,該物件所屬的類的建構函式自動被呼叫,在該物件生存期中也只呼叫這一次。
建構函式可以過載。嚴格地講,說明中可以有多個建構函式,它們由不同的參數列區分,系統在自動呼叫時按一般函式過載的規則選乙個執行。
建構函式可以在類中定義,也可以在類外定義。
如果類說明中沒有給出建構函式,則c++編譯器自動給出乙個預設的建構函式:類名(void) ; ,不論自己定義還是c++編譯器給出,預設的建構函式只有乙個。
什麼是析構函式
當乙個物件定義時,c++自動呼叫建構函式建立該物件並進行初始化,那麼當乙個物件的生命週期結束時,c++也會自動呼叫乙個函式登出該物件並進行善後工作,這個
特殊的成員函式
即析構函式(destructor):
2、析構函式的使用
物件用完後,系統會自動呼叫的,不用煩了。但是,動態物件要記著自己主動釋放!
void cgoods::counttotal(void) //計算商品總價值
VC 學習筆記2
1 新增背景到 bitmap 資源裡。方法為 插入 資源 如果還沒有bitmap,則新建乙個bitmap,否則選擇資源 型別為 bitmap 後 引入 想要插入的背景,我加入的背景如圖1,加入過程如圖2。說明 引入的可以插入256色 16位色或更高色的,若是其他格式可用ps開啟再另存為bmp 24位...
VC基礎學習 開啟學習的契機
第三章 圖形和文字的輸出 為了達到裝置無關性,windows提供了gdi 圖形裝置介面,負責使用者繪圖 操作的轉換,使用者只需要和gdi提供的裝置環境打交道就行了。裝置環境類 mfc提供,cdc,cpaintdc,cclientdc,cwindowdc和cmetafiledc 功能描述 cdc 所有...
VC 學習(2) 掌握C
c 的標準輸入輸出流 c 中提供了一套輸入輸出流類的物件,它們是 cin cout 和cerr 對應c 語言中的三個檔案指標 stdin stdout stderr 分別指向終端輸入 終端輸出和標準出錯輸出 也從終端輸出 cin與 一起完成輸入操作,cout cerr 與 一起完成輸出與標準錯誤輸出...