#include
#include
using namespace std;
class u_ptr //定義乙個智慧型指標
~u_ptr()
class hasptr
hasptr(const hasptr& obj) : ptr(obj.ptr) , val(obj.val) // 複製建構函式
hasptr& operator=(const hasptr& rhs)
~hasptr()
private:
u_ptr *ptr;
int val;
public:
int * get_ptr() const
int get_int() const
void set_ptr(int *p)
void set_int(int i)
int get_ptr_val()
void set_ptr_val(int i)
int get_used_num() const
};void tmp(hasptr &test,hasptr &test2,hasptr &test3)
//the 1
//55 1
//copy 1
//55 2
//55 2
//= 1
//55 3
//55 3
//55 3
//tmp 1
//55 4
//55 4
//55 4
//55 4
//tmp out 1
//55 3
//55 3
// 55 3
第十三章 複製控制
1 複製建構函式,在物件定義初始化時,會出現 此時的 不是賦值效果,而是複製建構函式的效果。2 複製建構函式,定義在私有中,則禁止了操作,除了友元 若在私有中只是宣告不定義,則任何都無法呼叫建構函式 3 容器是有複製建構函式的。4 類中指標成員有3種處理方式,一是複製指標的值共享所指物件,這樣會帶來...
C Primer 第十三章 複製控制
複製建構函式 賦值操作符和析構函式總稱為複製控制。編譯器自動實現這些操作,但類也可以定義自己的版本。複製建構函式是一種特殊建構函式,具有單個形參,該形參 常用 const 修飾 是對該類型別的引用。析構函式是建構函式的互補 當物件超出作用域或動態分配的物件被刪除時,將自動應用析構函式。不管類是否定義...
第十三章 拷貝控制
在定義任何 c 類時,拷貝控制操作都是必要部分。如果我們不顯示定義這些操作,編譯器也會為我們定義,但編譯器定義的版本的行為可能並非我們所想。拷貝初始化不僅在我們用 定義變數時會發生,在下列情況下也會發生 將乙個物件作為實參傳遞給乙個非引用型別的形參 從乙個返回型別為非引用型別的函式返回乙個物件 用花...