建構式
和類名相同,可以帶引數,引數可以有多個
定義物件時,自動呼叫,構造完成了,物件就產生了
建構式執行完成后,記憶體開辟完成,同時可以完成初始化作業.
解構式
~Test();
解構式可以自己呼叫,不帶引數,只有一個解構式,解構式呼叫后,物件不存在了.自己調了解構式后,就不能在呼叫物件的方法了.不建議自己呼叫解構式
示例代碼1:
class student{
private:
int age;
char NAME[20];
};
student s1
int main(){
student s2;
student *ps3=new student();
}
上面的代碼 s2資料位置在堆疊上, ps3指向物件在堆上, s1在資料區 .data
s2在堆疊上,main 函式執行完成后,會自動呼叫解構式, 而ps3在堆上,必須自己手動的 delete ps3,
delete ps3實際上包含兩個動作,第1個是呼叫這個物件的的解構式,第2個是釋放記憶體即 free(ps3);
s1是全域變數,在.data 區,程式結束后才自動析構
.data 段的物件在程式啟動的時候構造,程式結束是析構
Heap的物件new的時候構造,delete的時候析構
Stack 物件,在定義的時候構造,出了函式析構
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/532502.html
標籤:C++
上一篇:crnkspringsecurity僅GET請求作業
下一篇:<三>物件的淺拷貝和深拷貝問題
