C 一周學習總結(2021 02 28)

2021-10-20 15:41:39 字數 4037 閱讀 3598

class human

① 預設建構函式

當建立物件時,編譯器自動生成預設建構函式,即為合成的預設建構函式。

類:

class human

human h;

//建立物件,編譯器呼叫human()合成的預設建構函式

當在建構函式中初始化變數資料時,即為手動定義的預設建構函式。

類:

class human

實現:

human::

human()

呼叫:

human h;

//建立物件,編譯器呼叫human()手動定義的預設建構函式

② 自定義建構函式

在建構函式中新增引數,並初始化資料。

類:

class human

實現:

human::

human

(string name,

int age)

呼叫:

human h

("李四",22

);//建立物件,編譯器呼叫自定義的建構函式

③ 拷貝建構函式

當建立物件,初始化時,將另乙個物件賦值給當前建立的物件的時候,呼叫拷貝建構函式。

類:

class human

實現:

human::

human

(const human& other)

呼叫:

human h1

("王五",21

);//建立物件,編譯器呼叫自定義的建構函式

human h2

(h1)

;//呼叫拷貝建構函式

human h3 = h1;

//呼叫拷貝建構函式

上面的拷貝函式為手動定義的拷貝建構函式,當省略拷貝建構函式不寫時,編譯器也會自動生成和呼叫拷貝建構函式,即為合成的拷貝建構函式。

拷貝建構函式的使用場景:

當函式的實參是物件,返回型別為類。

陣列物件,初始化。

human test

(human human)

human test1

(human& human)

human h1,h2,h3;

test

(h1)

;//呼叫兩次拷貝函式

test1

(h1)

;//呼叫一次拷貝函式

human men=

;//呼叫三次拷貝函式

④ 賦值建構函式

當建立物件後,將另乙個物件賦值給當前建立的物件的時候,呼叫拷貝賦值建構函式。

類:

class human

實現:

human& human::

operator=(

const human& other)

呼叫:

human test

(human& human)

human h1

("王五",21

);//建立物件,編譯器呼叫自定義的建構函式

human h2

(h1)

;//呼叫拷貝建構函式

h2 = h1;

//呼叫賦值建構函式

human h3;

h3 =

test

(h1)

;//呼叫賦值建構函式

一般用來釋放資源(例如申請了動態記憶體,需要釋放),當沒有資源需要釋放而不寫析構函式時,編譯器也會在物件銷毀時自動呼叫。

類:

class human

定義:

class human

初始化:

string human::name =

"張三"

;//初始化靜態資料成員

void

play()

靜態成員函式可以用類名直接訪問,也可以建立物件後進行訪問。

靜態成員函式不能訪問普通的資料成員(例項成員)和普通的成員方法(例項方法)。

定義:

class human

實現:

human::

drink()

呼叫:

human::

drink()

;//可以直接用型別呼叫

human h1;

h1.drink()

;//物件也可以呼叫

const型別的資料成員無法修改,只能讀。

定義:

class human

初始化:可以使用類內值,也可以使用建構函式的初始化列表

human::

hunman()

:booltype

("未知"

)

在這個函式中,不能修改任何資料成員,只能讀。也不能呼叫其他的非const的成員函式

定義:

class human

初始化:可以使用類內值,也可以使用建構函式的初始化列表

void human::

play()

const

【例】乙個計算機類,由cpu晶元,硬碟,記憶體等組成。

其中cpu晶元也使用類來表示,則cpu類與計算機類為組合關係。計算機物件被建立時,cpu物件也會被建立,計算機物件被銷毀時,cpu物件也會被銷毀。

cpu類:

class cpu

計算機類:

#include

"cpu.h"

//包含cpu類

class computer

初始化:

computer::

computer

(const string *name,

const

int version,

int harddisk,

int memory)

:cpu

(name,version)

【例】乙個計算機需要外接音效卡,建立乙個音效卡類。

音效卡類與計算機類為聚合關係。計算機物件被建立時,音效卡物件也會被建立,計算機物件被銷毀時,音效卡物件不會被銷毀。

計算機類:

class

voice

;//直接定義voice類

class computer

初始化:

void computer::

addvoice

(voice *voice)

呼叫:

#include

"computer.h"

//包含計算機類

#include

"voice.h"

//包含音效卡類

computer cmp;

cmp.

addvoice()

;//呼叫新增音效卡的方法

2021 02 28 助教一周小結(第四周

截止至2月28日 作業部落格提交情況 107 132 25人未提交 完成率 81 點評作業 10份 協助其他助教進行第一次結對作業選題。進行個人程式設計作業點評。很多同學並沒有用git來管理 而是將git作為題目要求的乙個指標,先完成 再直接一次性提交到git倉庫 同學們還是沒有遵循commit規範...

C語言一周學習內容總結

1.巨集定義只是簡單的替換,它 不進行型別檢查,只是在預編譯的時候將巨集名替換為巨集體。系統是不會為巨集開闢記憶體空間的。所以不能對巨集進行遞增遞減的算數運算,也不能對紅巨集進行取位址的操作。例如 define pi 3.14 2.而由const 定義的常變數則是乙個完全不同的概念。常變數是乙個數值...

第一周C 學習總結

這學期學習專業課c 此篇部落格主要總結一下這周學習的內容。一 c 中對於如何輸出保留小數點的數字。以老師發的實驗題為例,求兩點之間的座標。一開始我是以printf來進行輸出的,如下 include includeusing namespace std int main 但後面老師講了fixed和se...