#
現(xiàn)在在 Visual C++ Toolkit 2003 的主頁上,下載鏈接已經(jīng)被去掉,轉(zhuǎn)而勸告人們使用 Visual C++ 2005 Express。VCToolkitSetup.exe下載
我們在編寫應(yīng)用程序的時(shí)候explicit關(guān)鍵字基本上是很少使用,它的作用是"禁止單參數(shù)構(gòu)造函數(shù)"被用于自動型別轉(zhuǎn)換,其中比較典型的例子就是容器類型,在這種類型的構(gòu)造函數(shù)中你可以將初始長度作為參數(shù)傳遞給構(gòu)造函數(shù).例如:你可以聲明這樣一個(gè)構(gòu)造函數(shù)
關(guān)鍵字mutable是C++中一個(gè)不常用的關(guān)鍵字,他只能用于類的非靜態(tài)和非常量數(shù)據(jù)成員我們知道一個(gè)對象的狀態(tài)由該對象的非靜態(tài)數(shù)據(jù)成員決定,所以隨著數(shù)據(jù)成員的改變,對像的狀態(tài)也會隨之發(fā)生變化! 如果一個(gè)類的成員函數(shù)被聲明為const類型,表示該函數(shù)不會改變對象的狀態(tài),也就是該函數(shù)不會修改類的非靜態(tài)數(shù)據(jù)成員.但是有些時(shí)候需要在該類函數(shù)中對類的數(shù)據(jù)成員進(jìn)行賦值.這個(gè)時(shí)候就需要用到mutable關(guān)鍵字了
例如:
編譯上面的代碼會出現(xiàn) error C2166: l-value specifies const object的錯誤說明在const類型的函數(shù)中改變了類的非靜態(tài)數(shù)據(jù)成員.
這個(gè)時(shí)候需要使用mutable來修飾一下要在const成員函數(shù)中改變的非靜態(tài)數(shù)據(jù)成員m_nAccess,代碼如下:
工廠方法和抽象工廠實(shí)際上是從不同角度在描述問題。工廠方法描述了具體產(chǎn)品的創(chuàng)建,而抽象工廠描述的是產(chǎn)品系列的組織。
這個(gè)例子比較清楚了,不同的工廠生產(chǎn)不同的計(jì)算機(jī),但計(jì)算機(jī)的基本組成(這里假設(shè)計(jì)算機(jī)僅由ram和cpu組成)是一樣的,這樣的產(chǎn)品系列很適合用抽象工廠來組織。而在實(shí)際生產(chǎn)計(jì)算機(jī)的時(shí)候,createRam()和createCpu()這兩個(gè)工廠方法又起到了作用。
Powered by: C++博客 Copyright © 安帛偉