C 類的構造與析構函式(二)

2021-08-21 23:32:48 字數 1139 閱讀 3225

//主要研究的是---賦值建構函式(拷貝建構函式(複製建構函式))

class test

test(int a, int b)

//賦值建構函式,用乙個物件操作另乙個物件;-----拷貝建構函式;

test(const test& obj)

test(int a)

public:

void printt()

private:

int m_a;

int m_b;

};

普通的呼叫:

//賦值建構函式:用乙個物件去創造另外乙個物件;

int main()

class location

location(const location & obj) //複製建構函式 完成物件的初始化

~location()

int getx() int gety()

private:

int x, y;

};//業務函式 形參是乙個元素

void f(location p)

int main()

//g函式返回乙個元素;

//結論1:函式的返回值是乙個元素(複雜型別的),返回的是乙個新的匿名物件;----所以會呼叫匿名物件了;

//匿名物件的去和留:

//這麼寫**,編譯器就認為:給你返回乙個新物件(沒有名字,匿名物件);

location g()

void objplay()

void objplay_1()

//結論2:有關匿名物件的去和留,

//如果用匿名物件 初始化 另乙個同型別的物件,匿名物件轉成有名物件;

//如果用匿名物件 賦值給 另乙個同型別的物件,匿名物件被析構;

//拷貝建構函式的第四種應用場景:

int main()

//這個main中的//g(),//objplay(),//objplay_1(),可以作為測試之用。分別執行、除錯可以發現哪個被構造,哪個被析構,用來證明上述結論。

C 類的建構函式與析構函式

前言序錦 很開深也很受教的一次c 學習,今天在圖書館自習,女票說要拿一道c 的題來考考我,說這道題頗有難度,當時的我是很激動的,畢竟作為程式猿來說,就相當於獵人嗅到了食物的味道一樣o o哈哈 好了話不多說,直接來上題目吧 正文 題目 calss a a a p 老鐵們,請先不要繼續往下看,先來自己品...

類的建構函式與析構

1.把物件的初始化工作放在建構函式中,把清除工作放在析構函式中。當物件被建立時,建構函式被自動執行。當物件消亡時,析構函式被自動執行。這下就不用擔心忘了物件的初始化和清除工作。2.建構函式 析構函式與類同名,由於析構函式的目的與建構函式的相反,就加字首 以示區別。3.建構函式與析構函式都沒有返回值型...

類的構造與析構函式

每個類都有建構函式和析構函式。即使使用者建立的類,系統也會為該類建立預設的建構函式。建構函式不能是虛函式。在物件導向語言裡,這兩個函式特別重要。物件導向的語言裡,其成員變數和函式都屬於物件 除了靜態全域性變數和靜態函式 我們知道類不能夠直接在定義時對其成員變數進行初始化,這部分工作一部分統一放到建構...