如果在類內宣告類外使用的話,那我舉個例子好了
#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...