1.類和類成員
c++提供了如char、int、long、float、double等基本資料型別,足夠用來解決大多數哦相對簡單的問題,但對於複雜的問題就比較困難了。
c++的乙個實用特性是自定義資料型別;如之前的列舉和結構體:
struct goods
struct 類中預設訪問限定符是公有的,oop類中預設訪問限定符是私有的;
類的封裝:訪問限定符
public:任意位置都可以進行訪問
protect:子類、本類類中允許訪問
private:本類類中訪問
class cgoods
void buy()
private:
char* mname;
float mprice;
int mamount;
};
物件的生成:
(1)物件開闢記憶體空間;
(2)物件記憶體做初始化,呼叫建構函式
物件的銷毀:
(1)釋放物件所佔的其他資源,呼叫析構函式;
(2)釋放物件所佔的記憶體空間;
二、c++中的六個預設函式(若程式不定義或不呼叫,編譯器自動定義或呼叫的函式)
(1)建構函式:
類的一種特殊的成員函式,當類被例項化時執行;通常用以初始化。
建構函式有明確的命名規則:a)函式名必須和類名一樣;b)無返回型別(包括void)。
無參建構函式-不帶引數的建構函式,是類的預設建構函式
class test
test(int a)
test()
test(const test& rhs)
(2)析構函式:
析構函式(destructor) 與 建構函式相反,當物件結束其 生命週期時(例如物件所在的函式已呼叫完畢),系統 自動 執行析構函式。當程式中沒有析構函式時,系統會自動生成析構函式。
特點:不可過載、可以手動進行呼叫,先構造,後析構。
作用:釋放物件資源。
~test()
(3)拷貝建構函式:
由編譯器呼叫來完成一些基於同一類的其他物件的構建及初始化(預設為淺拷貝)
拷貝構造函式呼叫的三種形式
(1)乙個物件作為函式引數,以值傳遞的方式傳入函式體;
(2)乙個物件作為函式返回值,以值傳遞的方式從函式返回;
(3)乙個物件用於給另外乙個物件進行初始化(常稱為複製初始化)。
class test
test(int a)
test()
test(const test& rhs)
test& operator=(const test& rhs)
return *this; //拷貝建構函式
} ~test()
(4)賦值運算子的過載函式:
1.判斷自賦值;
2.釋放舊資源;
3.開闢新資源;
4.賦值;
形參中const的作用:1.防止實參被修改;2.接收隱式生成的臨時量;
cgoods(const cgoods& rhs)
//普通建構函式
cgoods& operator=(const cgoods& rhs) //賦值運算子過載函式
return *this;
} ~cgoods() //呼叫析構函式
後面還有
5.取位址操作符的過載函式
6.const修飾的取位址操作符的過載函式
這兩個在c++中應用不太常見,因此在這裡不做描述;
類和類的封裝
在日常生活中,我們總是將事物進行分門別類。列如 電腦,手機,相機等等,這些稱呼都是對於某一類事物的總稱。我們還能將電腦按照品牌分類,比如,戴爾電腦 惠普電腦 蘋果電腦 華碩電腦等。這些都是抽象的概念。我的電腦這個實體,它就是乙個具體的事物,我的電腦是戴爾的,但我不能說戴爾電腦是我的電腦。類和物件是面...
C 類和物件 封裝
c 物件導向三大特性 封裝 繼承 多型 將屬性和行為作為乙個整體,表現生活中的事物 將屬性和行為加以許可權控制 public 公共許可權 類內可以訪問,類外可以訪問 protected 保護許可權 類內可以訪問,類外不可以訪問 private 私有許可權 類內可以訪問,類外不可以訪問 在c 中str...
C 類的封裝
1 private,public,protected的訪問範圍 private 只能由該類中的函式 其友元函式訪問,不能被任何其他訪問,該類的物件也不能訪問.protected 可以被該類中的函式 子類的函式 以及其友元函式訪問,但不能被該類的物件訪問 public 可以被該類中的函式 子類的函式 ...