C 學習筆記之構造,析構函式,this指標

2021-10-05 03:59:56 字數 1462 閱讀 2169

如果在類內宣告類外使用的話,那我舉個例子好了

#include

using

namespace std;

class

stu;

stu::

print()

//對,就這樣用

建構函式:

1.函式名與類名相同

2.沒有函式返回值型別,也沒有返回值

3**.乙個新的物件被建立時,該物件的建構函式會自動的被呼叫,對這個物件進行初始化工作(也就是說每次新物件就呼叫一次)**

4. 新物件的建立包括兩種情況,ca a(物件說明語句);ca *pa = new ca(物件指標指向動態開闢的堆區無名物件);

5.如果乙個類說明中沒有顯式的給出構造,系統將自動給出乙個預設的(隱式)什麼都不幹的建構函式,《類名》(){}

6,如果說明中包括多個建構函式,一般會有不同的引數列表和函式體。(函式過載)

class

student

};

析構函式

物件死亡的時候可以呼叫析構函式

1.函式名與類名相同,前面加上乙個~ 即~《類名》(){}

2.沒有函式返回值型別,也沒有返回值,也沒有引數,析構只有乙個

3.當物件出了他的作用域的時候,系統會自動呼叫析構函式(按照區域性變數的方式理解)

4.析構函式的作用一般是用於給物件裡面在堆區申請的記憶體釋放

5.乙個類只有乙個析構函式

6.如果乙個類中沒有顯示的給出析構,析構將自動給出乙個(隱式)什麼都不幹的析構(如果有的話,系統就不給了)

//析構函式可以主動呼叫

class

student

新的例子:

#include

using

namespace std;

class

student

void get ~

student()

}};

this指標

this指標總是指向呼叫者物件,什麼意思呢,我們用下面的例子來比較說明一下,例子1:

#include

using

namespace std;

class

stu}

;int

main()

例子2:

#include

using

namespace std;

class

stu}

;//這個this->a代表的是新的物件中有a這個變數,然後被fun(int a)中的a給賦值了,如程式所示。

intmain()

C 學習筆記之建構函式與析構函式

析構函式 疑問class car car car void 定義,其實也可以在宣告時直接定義 建構函式的函式名與所在的類名相同 區分大小寫 在由類定義物件的時候就會第一時間呼叫建構函式 建構函式沒有返回值,不用加void。每乙個類都有至少乙個構造器,自己忘記定義時,編譯器會自動定義乙個空的構造器和副...

C 學習筆記之建構函式和析構函式

c 學習筆記之建構函式和析構函式 c 利用了建構函式和析構函式來解決成員變數初始化和銷毀清理工作,這兩個函式將會被編譯器自動呼叫,完成物件初始化和清理工作。物件的初始化和清理工作是編譯器強制要求我們做的事情,因此如果我們不提供建構函式和析構函式,編譯器會給我們提供預設的建構函式和析構。編譯器所提供的...

C 學習之建構函式 析構函式

在c 的類中,都會有乙個或多個建構函式 乙個析構函式 乙個賦值運算操作符。即使我們自己定義的類中,沒有顯示定義它們,編譯器也會宣告乙個預設建構函式 乙個析構函式和乙個賦值運算操作符。例如 宣告乙個空類 class empty 但是這個空類和下面這個類是等同的 class empty 預設建構函式 e...