這裡同樣以課本p101樣例為示例來說明。
/*p101 樣例 時鐘類*/
class clock;
1、最最基本的結構class clock;///花括號下邊界
乙個類的宣告當中最基本的部分
class
為類的關鍵字,宣告乙個類,也表示下面要寫乙個類。
clock
為類名,是這個類的名字。
{}上下花括號將類的各個類的成員放入這個類當中,將類與其他**分隔。
2、類當中的成員
......
void settime(int newh,int newm,int news)//函式成員
void showtime(void);//函式成員
......
int hour,minute,second;//資料成員
類當中的成員分為兩種:資料成員和函式成員
資料成員:成員是資料
函式成員:成員是函式
3、類當中成員的訪問控制屬性
public:
.....private:
.....
成員的訪問控制屬性的型別有三種:public、private、protect
不同型別的資料成員和函式成員分別寫在相應的
訪問控制屬性:
之下
public
中文名:公有型別
課本定義:公有型別成員定義了類的外部介面
實際上:說白了從**都可以訪問乙個類當中的公有型別的成員,無論是在主函式當中,還是在**,只要在訪問之前宣告了乙個類,那麼就可以肆無忌憚的訪問在這個類裡面的公有型別成員其中的函式或者資料。
外部介面說白了就是外面可以訪問到這個類的內容,這個內容可以是資料,也可以是函式。
private
中文名:私有型別
課本定義:私有型別成員只能被本類的成員函式訪問,來自外部的任何訪問都是非法的。
實際上:課本給的定義已經非常清楚了,除了在這個類內的成員可以訪問以外,其他訪問都是非法的。
但是本類的資料成員也可以訪問本類的私有成員資料,這一點課本想表達的意思應該是只能在本類的成員函式中被本類成員資料和函式訪問,而不是只能被本類的成員函式訪問。
protect
中文名:保護型別
課本定義:保護型別成員的性質和私有型別成員的性質相似,其差別在於繼承過程中對產生的新類影響不同。
這個在繼承的時候再說。
publicvsprivate
public當中的成員可以被任何地方的函式或者資料訪問。
private當中的成員只能被本類的函式和資料訪問。
課本p103
我們可以像宣告乙個基本資料型別一樣宣告乙個物件
對於基本資料型別的宣告:
int a;
資料型別 變數名
同樣的,對於物件的宣告
clock myclock;
類名 物件名
如果我們要訪問乙個物件的成員,我們可以用我們在c中訪問結構體當中同樣的方法去訪問
即運用訪問運算子
myclock.showtime(); ///訪問myclock當中的showtime函式。
當使用指標進行訪問時可以用語法糖』->』,這一點是和c語言無異的
clock a;
a.settime(1,2,3);
clock *p; //乙個clock類的指標p
p =&a; //這個指標指向a
p->showtime(); //使用->訪問其中的成員
/*p104 時鐘成員函式實現*/
void clock::settime(int newh, int newm, int news)
void clock::showtime(void)
從c過度到c++的時候最容易忘記就是寫類名::這乙個部分,任何類的函式成員都必須寫,不然編譯器無法識別這是乙個類的函式並且會報錯。
2、在成員函式中呼叫資料
在成員函式中可以呼叫成員函式所屬類的所有成員,包括公有成員,私有成員和保護成員.
且不需要加
.
3、內聯成員函式(inline)
class clock
void showtime(void)
;
這樣子直接在類當中實現成員函式是合法的。
根據書上的說法這樣子可以節約資源。
而內聯函式所寫成的內聯成員函式可以實現在類外實現成員函式同時達到和上面相同的效果
即:class clock;
inline
void clock::settime(int newh, int newm, int news)
inline
void clock::showtime(void)
{ cout
<':'
<':'
《效果和上面相同。
據說**片如果太長其實這個寫法也會失效。
C 學習筆記 類和物件(1)
實體 客觀世界存在的某種事物,一杯茶,乙個人。每個實體都有屬性,其中,特徵稱為靜態屬性,功能稱為動態屬性。比如人的特徵,人的功能 物件 對實體進行抽象得到了物件。類 class 具有相同特徵與功能的物件集合。物件是類的例項化 instance 如果出現以下幾種情況,程式就會執行析構函式 如果在乙個函...
C 類 和 物件 1
類是 c 的核心特性,通常被稱為使用者定義的型別。類用於指定物件的形式,它包含了資料的表示和用於處理資料的方法。類中的資料 方法 函式,稱為類的成員。定義了類,也就意味著定義了類的物件包括什麼,以及可以在這個物件上執行哪些操作。例如,我們使用關鍵字class定義 box 資料型別,如下所示 clas...
C 學習 二 類和物件 1
class struct classname class為定義類的關鍵字,classname為類的名字,中為類的主體,注意類定義結束時後面分號。類中的元素稱為類的成員 類中的資料稱為類的屬性或者成員變數 類中的函式稱為類的方法或者成員函式 c 中struct和class的區別是什麼?c 需要相容c語...