析構函式
應用場景
淺拷貝、深拷貝
class person
person(int a) };
// 呼叫情況1.
person p; //呼叫了無參構造
person p(); //沒有呼叫了無參構造,
// 呼叫情況2.
person* p1 = new person; // //呼叫了無參構造
person* p2 = new person(); //呼叫了無參構造
tips : 省事的話呼叫無參構造,直接不加括號
test.h
class test
//無引數的建構函式
test()
//拷貝建構函式 ,想通過另乙個test物件 another 將本物件進行拷貝
test
(const test & another)
//等號操作符
void operator =
(const test &t)
void
printt()
//提供乙個析構函式
~test()
private:
int m_x;
int m_y;
};
1.
void
test1()
2.void
test2()
3.void
func
(test t)
//test t(t1); //會呼叫區域性變數t的拷貝建構函式
void
test3()
4. test func2()
void
test4()
5.void
test5()
6.void
test6()
例子:
person.h
#pragma once
#include
using namespace std;
class person
person
(const person& another)
~person()
}private:
int m_id;
char
*m_name;
};
user.c
#include
"person.h"
using namespace std;
intmain()
物件的構造 析構 拷貝構造
這是一道外企的c 筆試題,要求寫出結果並分析 include class a void main a a 1 f a 1 3.當函式的返回值型別為類的物件的時候。例如 a f a a 1 return a 1 void main a a a f 當自己定義的類中沒有定義拷貝建構函式的時候,系統在需要...
關於構造,析構,拷貝建構函式,
1.建構函式 2.析構函式 3.拷貝建構函式 4.賦值語句 5.位址過載運算子 取址符 6.對const取物件的位址符 一.建構函式 1.關鍵字explicit 在建構函式前加上explicit時建構函式必須顯示呼叫 例如test是類名,有乙個test的建構函式,有兩個引數。若果加上關鍵字expli...
構造 析構 深拷貝和淺拷貝
1.類與物件的編譯原理 每個物件所占用的記憶體空間都等於類中全部資料成員所需記憶體空間的總和 多個同類物件共用同乙個函式,記憶體中只需要儲存乙份函式 物件函式成員編譯時,編譯器會給函式成員的函式頭新增物件指標作為形參 類名 const this 2.物件的構造和析構 變數在記憶體的生存期 全域性變數...