//主要研究的是---賦值建構函式(拷貝建構函式(複製建構函式))
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.建構函式與析構函式都沒有返回值型...
類的構造與析構函式
每個類都有建構函式和析構函式。即使使用者建立的類,系統也會為該類建立預設的建構函式。建構函式不能是虛函式。在物件導向語言裡,這兩個函式特別重要。物件導向的語言裡,其成員變數和函式都屬於物件 除了靜態全域性變數和靜態函式 我們知道類不能夠直接在定義時對其成員變數進行初始化,這部分工作一部分統一放到建構...