c 入門程式設計學習記錄8

2021-10-25 17:56:08 字數 1330 閱讀 5429

20.10.12,學習c++的第八天

建構函式和析構函式

class

person

//析構函式

~person()

};

建構函式的分類與呼叫

class

person

//有參建構函式

person

(int a)

//拷貝建構函式

person

(const person& p)

//析構函式

~person()

public

:int age;};

//呼叫

void

test02()

拷貝構造函式呼叫時機 沒聽懂

構造函式呼叫規則如下:

淺拷貝:簡單的賦值拷貝操作

深拷貝:在堆區重新申請空間,進行拷貝操作

如果利用編譯器提供的拷貝建構函式,會做淺拷貝操作。(淺拷貝帶來的問題就是堆區記憶體的重複釋放)

注意:如果屬性有在堆區開闢的,一定要自己提供拷貝建構函式,防止淺拷貝帶來的問題

class

person

;//無參(預設)建構函式

person

(int age ,

int height)

// 有參建構函式

//拷貝建構函式

person

(const person& p)

//析構函式

~person()

}public

:int m_age;

int* m_height;

};

c++提供了初始化列表語法,用來初始化屬性

class

person

//初始化列表方式初始化

person

(int a,

int b,

int c)

:m_a

(a),

m_b(b)

,m_c

(c)void

printperson()

private

:int m_a;

int m_b;

int m_c;

};

靜態成員就是在成員變數和成員函式前加上關鍵字static。分為靜態成員變數、靜態成員函式。

靜態成員變數:類內宣告,類外初始化;所有物件共享同乙份資料;在編譯階段分配記憶體。

靜態成員函式:只能訪問靜態成員變數。

c 入門程式設計學習記錄4

20.8.5,學習c 的第四天 結構體的知識以及用法 include include using namespace std struct student struct teacher int main 結構體陣列 struct student stuarr 2 結構體指標 struct stude...

c 入門程式設計學習記錄6

20.10.6,學習c 的第六天 函式預設引數 int func int a,int b 10,int c 10 1.如果某個位置引數有預設值,那麼從這個位置往後,從左向右,必須都要有預設值 2.如果函式宣告有預設值,函式實現的時候就不能有預設引數 宣告和實現只能有乙個預設引數 函式佔位引數 voi...

c 入門程式設計學習記錄9

20.10.19,學習c 的第九天 乙個空物件占用乙個位元組的空間。只有非靜態成員變數才屬於類的物件上。this指標指向被呼叫的成員函式所屬的物件 this指標的用途 在成員行為中使用成員屬性,預設是 this menber 空指標訪問成員函式 class person void showperso...