C 學習筆記九 類的定義與初始化

2021-10-14 13:04:36 字數 1822 閱讀 9308

c++中,可以使用類來定義自己的資料型別,那麼如和理解自己的資料型別?比如我們常見的如 int ,float,char…等等諸如此類,這都是一種資料型別,那麼比如我自己想定義乙個叫 clock 的資料型別,裡面包含小時,分鐘,秒,並可以顯示出來,那麼我們就可以使用類來定義自己的資料型別 clock。

定義如下

class

clock

;

class: 宣告類的關鍵字,宣告類的基本形式。

clock:類名,表示小時,分鐘,秒。

public,private:表示類中的成員屬性,其中public表示類成員屬性為公共的,可在類外訪問,具體訪問的形式為 : 類名.成員名,其中類的成員既可以時資料也可以是函式名,比如我要訪問名叫資料型別為clock的time中setime函式,訪問的形式則為 time.setime()

private:為類的私有成員,不可以在類外訪問可以在成員之訪問。

其實還有乙個protected屬性成員,成員屬性與private類似,但是在某些方面有些許的不同,將會在後面的文章進行介紹。

建構函式:其中包含了預設建構函式以及自己定義的建構函式,建構函式的作用是對成員進行初始化,比如對private中的成員進行初始化。構造形式為 類名(引數),建構函式不可以有返回值。以上面的clock為例建構函式的形式為:

clock

(int newh,

int newm,

int news)

;//建構函式

clock()

;//預設建構函式

函式定義:在類中定義函式成員以後,可以在類外或者類內對函式進行定義,定義的方式為 返回值型別 類名::函式名(引數),以上面中的showtime函式為例 ,其中定義的方式為

void clock::

showtime()

下面舉乙個例子方便理解類的定義以及建構函式的作用,簡單定義乙個clock類並使用兩種不同的方式初始化,並將初始化的資料列印出來,完整的**如下

# include

# include

# include

using

namespace std;

class

clock

;void clock::

setime

(int newhour,

int newminute,

int newsecond)

void clock::

showtime()

clock::

clock

(int newh,

int newm,

int news)

:hour

(newh)

,minute

(newm)

,second

(news)

clock::

clock()

:hour(0

),minute(0

),second(0

)int

main()

上面用到了初始化列表,其實就是一種快速初始化的形式,因為簡單的初始化就是將值賦給對應的變數,將賦值語句寫在函式體內是一樣的,執行結果如圖。

以上是簡單的類的定義以及建構函式的使用。

C 學習 類成員的初始化

1 關於建構函式 1 用建構函式確保初始化 對於乙個空類 cpp view plain copy class empty 編譯器會自動宣告4個預設函式 建構函式,拷貝建構函式,賦值函式,析構函式 當然,如果不想使用自動生成的函式,就應該明確拒絕 這些生成的函式都是public且inline。建構函式...

陣列的定義與初始化

人們借助計算機來記錄每月的開支 日降水量 季度銷售額 企業可以借助計算機來管理員工薪水 倉庫存貨清單等等。採用陣列可以有效便捷地處理各種型別的資料。陣列 array 是由一系列型別相同的元素構成。可以使用申明來告訴編譯器需要乙個陣列,包含陣列元素的型別和陣列元素的數目。簡單陣列的定義char cod...

C 字元陣列的定義與初始化

1 字元陣列的定義與初始化 字元陣列的初始化,最容易理解的方式就是逐個字元賦給陣列中各元素。char str 10 即把10個字元分別賦給str 0 到str 9 10個元素 如果花括號中提供的字元個數大於陣列長度,則按語法錯誤處理 若小於陣列 長度,則只將這些字元陣列中前面那些元素,其餘的元素自動...