c++複習(五)

第五章 數據的共享和共享數據的保護

變量和對象定義在不同的位置,其作用域,可見性,生存期都不同
靜態數據成員,靜態函數成員

友元函數:
對一些類外的函數,其他的類,給予授權,使他可以訪問類的私有成員

常類型:
通過const關鍵字,限制對共享數據的修改

標識符的作用域和可見性
函數原型作用域:函數的形參表的範圍
局部作用域(塊):函數的形參,在塊中聲明的標識符,作用域自聲明處起,作用於塊中
類作用域:類體和成員函數體,在類作用域外訪問類的成員時:靜態成員:通過類名,或者該類的對象名,對象引用訪問;非靜態成員:通過類名,或者該類的對象名,對象引用,對象指針訪問;
文件作用域:始於聲明點,結束於文件尾
命名空間作用域:

可見性:
如果某個標識符在外層中聲明,且在內層中沒有同一標識符的聲明,則該標識符在內層可見,對於兩個嵌套的作用域,如果在內層的作用域內與外層同名的標識符,則外層在內層不可見

對象的生存期
**靜態生存期:**與程序運行期相同;在文件作用域中聲明的對象,具有靜態生存期;在函數內部聲明靜態生存期對象,要冠以關鍵字static;
**動態生存期:**始於程序執行到聲明點時,結束於命名該標識符的作用域結束處;塊作用域中聲明的,沒有用static修飾的對象;
靜態局部變量:具有全局壽命,局部可見,只有第一次進入函數時被初始化;
局部變量:具有動態生存期,每次進入函數時,都被初始化;

類的靜態數據成員
用關鍵字static聲明
爲該類的所有對象共享,靜態數據成員具有靜態生存期
必須在類外定義和初始化,用::來指明所屬的類

類的友元
是c++提供的一種破壞數據封裝和數據隱藏的機制;通過將一個模塊聲明爲另一個模塊的友元,一個模塊能夠引用到另一個模塊中本是被隱藏的信息;可以聲明友元函數和友元類。
友元函數
是在類聲明中由關鍵字friend修飾說明的非成員函數,在他的對象體中能夠通過對象名訪問private和protect成員,作用:增加靈活性,使程序員可以在封裝和快速性方面做合理選擇,訪問對象中的成員必須通過對象名。
友元關係是單向的;

共享數據的保護
常類型:常對象,必須進行初始化,不能被更新,const 類名 對象名;
常成員:用const進行修飾的類成員,常數據成員和常函數成員
常引用:被引用的對象不能被更新,const 類型說明符 &引用名;
常數組:數據元素不能被更新,類型說明符 const 數組名【大小】
常指針:指向常量的指針

多文件結構合成編譯預處理
一個工程可以劃分爲多個源文件,例如:類聲明文件(.h文件),類實現文件(.cpp文件),類的使用文件(main所在的.cpp文件),利用工程來組合各個文件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章