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值的不同副本。因為每個物件儲存自己的副本,所以析構...