1. 程式人生 > 其它 >C++第九篇:類和物件:類的定義和物件的建立

C++第九篇:類和物件:類的定義和物件的建立

技術標籤:C/C++

類是物件的模板,一個類可以擁有多個多個物件
建立類的過程也叫類的例項化
每一個物件都是類的例項,擁有類的 成員變數 和 成員函式

類似於結構體,類只是一種複雜的資料型別的宣告,不佔用記憶體空間,類的物件就是這種型別的變數(例項)是個具體的資料,佔有記憶體地址和空間大小

類的定義:
class Mainkind
{
public :
        char *name;
        int age;
private :
        int no;
public :
        void sleep()
        {
               //睡覺
cout << "我要睡覺惹!" << endl; } };

注意:class mainkind { } ; 後面有分號 我都是經常性忘記 !!!
class 是C++中用來定義類的關鍵字
類的名稱首字母一般要大寫 !! 小可愛要注意哦
在{ }內部所包含的成員變數和成員函式,它們統稱類的成員 包含的部分也叫類體。
其中 public關鍵字 只能用在類的定義中 表示該成員 有公開的訪問許可權 我們一般習慣 public: 來表示 加一個冒號 來表示一塊區域的成員擁有公開的訪問許可權!
類只是一個模板,編譯後 不佔記憶體空間,所以類在定義的時候不要對類進行初始化,因為沒有空間儲存資料,只有在建立該類的物件的時候才會給成員分配記憶體,這個時候就可以賦值了。

在有該類的前提下,建立類的物件
                //物件的建立
                Mainkind man;

從這裡我們可以看出,類其實也是一種的資料型別,複雜的資料型別,自定義的資料型別,再來個例子佐證一下:

             //物件的建立
                Mainkind man[10];

一個man裡面包含了10個Mainkind的物件,,是不是熟悉來著。嗯哼?

訪問類的成員
類的物件建立以後,我們可以通過 . 來訪問該類的公開的成員變數。。例子就不舉了 因為類(累)。

指向類的指標
C中的指標在C++的類中也有一些妙用。。

        //類的指標
Mainkind man; Mainkind *Pman = &man;

我們建立了一個指向Mainkind型別資料的指標,通過取址運算子 & 取得地址
在堆上建立物件 用 new 關鍵字
在棧上建立的物件都有一個名字 就好像 man ,使用指標指向它 不是必須的,但是通過new 出來的物件的關鍵字就不一樣了啦 / /
它只是在棧上分配記憶體,並沒有名字,所以我們得到它的就只是一個指向它的指標,否則我們是找不到它的。。(俏皮)
所以呢,我們就需要用一個指標來接收它
>> 重點:使用 new 在堆上創建出來的物件是匿名的。沒法直接使用,必須要用一個指標來指向它,這樣我們才可以通過指標訪問它的成員了了餓了。

        Mainkind *Pman = new Mainkind;
        //指標呼叫  還記得嗎
        Pman -> sleep();

在這裡插入圖片描述

最後最後:
棧記憶體是程式自動管理的,不能使用delete刪除;堆記憶體則是由軟體工程師管理的,物件使用完畢後,可以使用delete刪除掉;new和delete往往成對出現,以保證及時刪除不再使用的物件,防止無用記憶體堆積。

總結:
建立物件的兩種方式:

       //     棧上建立 (Minkind man)
       //     堆上建立  (Minkind *Pman = new Minkind)