c++中雖然有不少有效的措施來增加資料的安全性,但有些資料往往是共享的,例如實參與形參,變數與引用,資料及指標等,人們可以在不同的場合通過不同的途徑訪問同乙個資料物件,有時可能會在無意中改變有關資料的狀況,而這是人們不願意看到的。因此既要使資料能在一定範圍內共享,又要保證它不被任意修改,這時可以把有關的資料定義為常量。
第乙個「常量」是常物件:
常物件定義:類名 const 物件1,如 time const t1 (time是乙個類,t1 是常物件,),由於t1是常物件,因此t1中的所有資料成員的值都不能被修改,並且通過該物件只能呼叫它的常成員函式,不能呼叫它的普通成員函式。例如如下我定義乙個box類,然後定義乙個常物件,試圖呼叫該物件中非常成員函式,則會報錯
//定義乙個box類,
class box
;//定義box類的建構函式
box::box(int h,int w,int l)
box::box()
box::~box()
{ cout<<"destructor called"<
第二個是常成員函式:
常成員函式定義: 返回型別 函式名(參數列) const,例如我們定義box類中的volum函式為常成員函式,則為 int volum() const;
常成員函式可以訪問常物件中的資料成員,但不能修改常物件中的資料或成員的值。
第三個常識常資料成員:
常資料成員定義:const 型別 變數名,如 const int width;不能再建構函式中對常資料成員賦值,因為常資料成員是不能被賦值的,其初始化的方法是只能通過建構函式的引數初始化表對常資料成員進行初始化,任何其他函式都不能對常資料成員賦值。
第四個常是指向常物件的常指標:
定義:類名 *const 指標變數名;如box *const box1
指向物件的常指標是指其指向不變,但指向的變數可以改變
第五個常是指向常物件的指標變數:
定義:const 型別名 *指標變數名;
第六個常是物件的常引用:
例如我們在上面提到的box類中的volum函式可以重新定義如下:
int volum (box &box)//形參box是box類的引用
如此定義我們是可以修改實參物件中的資料成員的,為了避免修改,我們可以定義乙個常引用,如下:
int volum(const box &box)
如此宣告則不會在函式中修改實參物件的的資料成員。
常指標和常引用一般做函式引數,如此既能保護資料安全,又能減少呼叫函式引起的實參拷貝。
sqlserver中,sql程式設計的幾個小常
sqlserver中,sql程式設計的幾個小常 1 取出剛剛插入 刪除 的資料select 欄位名 from inserted deleted 2 對於update實際上是先delete然後再insert所以如果想得到update前後的資料值,應該先從deleted取出,然後從inserted取出 ...
C 中的常成員和常物件函式
1 建立物件時新增const關鍵字,這個物件就不可再修改,就有了常屬性,就意味著整個物件中的所有東西都不能修改。我們知道被const修飾的物件一旦被初始化了就不可改變,來看乙個例子 include include using namespace std class dog void show obj...
面試常考的幾個題
管道 pipe 管道是一種半雙工的通訊方式,資料只能單向流動,而且只能在具有親緣關係的程序間使用。程序的親緣關係通常是指父子程序關係。有名管道 named pipe 有名管道也是半雙工的通訊方式,但是它允許無親緣關係程序間的通訊。訊號量 semophore 訊號量是乙個計數器,可以用來控制多個程序對...