第13章習題 複製控制

2021-06-16 17:27:19 字數 715 閱讀 2150

1.理解呼叫過程
#include #include using namespace std;

/*************************

定義exmpl類,該類給出複製控制成員和乙個預設建構函式,各成員函式輸出自己的名字。

主程式中以不同方式使用exmpl型別的物件:

作為非引用形參和引用形參傳遞,動態分配;

作為函式返回值,進行賦值操作;

作為元素放在vector容器中,以此研究建構函式和複製控制成員的執**況。

*****************************/

struct exmpl

//複製建構函式

exmpl(const exmpl &)

//賦值操作符

exmpl &operator=(const exmpl &rhe)

//析構函式

~exmpl()

};void func1(exmpl obj) //形參為exmpl物件

void func2(exmpl &obj) //形參為exmpl物件引用

exmpl func3()

int main()

2. 智慧型指標

看了好幾遍思路算是清楚了,也不知道自己是不是真的理解了。下面是大神寫的。

當然,有網友也發現了些問題,暫不深究了。

第13章 複製控制

複製建構函式 賦值操作符和析構函式總稱為複製控制 copy control 複製建構函式可用於 1 根據另乙個同型別的物件顯式或隱式初始化乙個物件 2 複製乙個物件,將它作為實參傳給乙個函式 3 從函式返回時複製乙個物件 4 初始化順序容器中的元素,如vectorsev 5 分別用了預設建構函式和複...

第13章 複製控制 4

13.3 析構函式 析構函式可以完成資源 作為類建構函式的補充。1.何時呼叫析構函式 撤銷類物件時會自動呼叫析構函式。變數在超出作用域時應該自動撤銷。動態分配的物件只有在指向該物件的指標被刪除時才撤銷。如果沒有刪除指向動態物件的指標,則不會執行該物件的析構函式,物件就一直存在,從而導致記憶體洩漏,而...

第13章 複製控制 7

13.5.2 定義值型類 具有值語義的類所定義的物件,其行為很像算術型別的物件,反之亦然。string類是值型類的乙個例子。複製建構函式不再複製指標,它將分配乙個新的int物件,並初始化該物件以儲存與被複製物件相同的值。每個物件都儲存屬於自己的int值的不同副本。因為每個物件儲存自己的副本,所以析構...