C++中關於類的概念的學習思路

來源:互聯網
上載者:User

 C++中類的概念讓很多新學者都困惑不解,很多書上對這部分也沒有系統的整理,往往顯的章節雜亂無章,概念滿天飛。其實經過仔細的思考,我發現類中的概念還是計較系統的,現在整理如下,順便理一下思路,也為以後的學習做好更好的鋪墊。

總體的思路如以下的順序

1.類的定義---其實就是定義了新的類型,同以前經典的類型如int,char等沒有任何區別。只是這個類定義中不但包含了資料(屬性),而且還有函數(方法)罷了.

2.對象的定義---使用新的類型,產生該類型的一個變數,在OOP中就叫對象或者執行個體。

3.對象的初始化---對象的初始化與一般變數的初始化基本相同,就是讓這個變數內部的資料有值。

4.類內部的資料變數的不同類型----一般變數、待用資料變數、常資料變數、內含另一個類對象的資料變數

5.類內部的成員函數的不同類型----就好像是一般的函數,不過又分為一般函數、靜態函數、常函數等

6.對象的操作---對象進行賦值操作、加法操作、減法操作等,這部分其實就是運算子多載啦!

1。類的定義

    1.1類定義的三種寫法:

      a。方法寫在類定義的內部(內嵌函式)

      b。方法寫在類定義的外部(外聯函數)

      c。類的定義寫在外部檔案中

2。對象的定義

    2.1對象定義的兩種方法

      a。類名 對象名(帶參數與不帶參數)

      b。類名 *指標變數=new 類名()

   2.2對象定義時的不同位置

      a。定義在所有函數的外部--全域對象

      b。定義在函數的內部---局部對象

      c。定義在函數的內部,但是前面有關鍵字static---靜態局部對象

      d。定義堆對象----使用new操作符。

      e。定義時前面加有關鍵字const ---常對象

3。對象的初始化

     對象的初始化就像一般變數的初始化,一般變數的初始化方法有三種:

     a。int  a=10;

     b。int b;b=10;int a=b;

     c。int b;b=10;int a(b);

相對應的對象的初始化也有三種方式

     a。不但參數的建構函式的初始化

     b。帶參數的建構函式的初始化

     c。複製建構函式的初始化---使用一個現有對象來初始化另一個對象。這裡有一個淺拷貝與深拷貝的概念喲!很重要 。

既然對象的初始化時,需要建構函式,當然死亡時,就應該有解構函式了,解構函式的調用順序與建構函式的調用順序永遠相反,為什嗎?看看棧吧!哈哈。

4。類內部的資料變數的不同類型

    只要記住以下幾個規律即可

    a。待用資料成員,在類定義的下面,main函數的上面一定要初始化。

    b。待用資料成員為所有的對象公有,最經典的例子就是對象計數器了。

    c。類內如果定義了常資料成員,就是資料成員的前面有關鍵字const,那麼它的初始化必須放在建構函式的初始化列表中,為什嗎?因為常量一出生就要有值,而且不允許修改,沒辦法在建構函式內部賦值呀!明白了吧!

    d。類內包含一個另外一個類的對象時,有點麻煩,分開講

          1。我稱內部包含的這個類對象為內含類對象。

          2。內含類對象的初始化必須放在建構函式的初始化列表中。

          3。內含類對象與包含它的類對象的建構函式的順序是:內含類的建構函式--->外部類的建構函式

5。類內部的成員函數的不同類型

    a。靜態成員函數在對象還沒有出生的時候已經存在,所以可以通過類名調用,類名::方法名()

    b。靜態成員函數嚴禁對類的非待用資料操作

    c。常對象、常成員函數

         1。常成員函數的定義時,const不能放在前面,而是放在函數定義()的後面,標誌著const限制的是函數裡面的操作,這樣常成員函數在內部就不能改變對象的資料成員了,只能讀取。

         2。常對象只能調用常成員函數,一般對象即可以一般函數,而且可以調用常成員函數,但是一般函數的優先順序要高於常成員函數。

6。運算子的重載

     a。作為內建函式重載---有一個參數,並且函數不能使用帶有預設值參數的函數

     b。作為友元函數重載---有兩個參數

 

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.