#include #include "plain-ptr.h"
#include "value-ptr.h"
#include "smart-ptr.h"
using namespace std;
void test_ahasptr()
void test_chasptr()
void test_bhasptr()
int main()
class ahasptr
int *get_ptr() const
int get_int() const
void set_ptr(int *p)
void set_int(int i)
int get_ptr_val() const
void set_ptr_val(int val) const
private:
int val;
int *ptr; // 指標複製就是淺複製,複製的是指標的位址,
};
class u_ptr
~u_ptr()
};class bhasptr
bhasptr(const bhasptr &orig) :ptr(orig.ptr), val(orig.val) // 複製建構函式,
bhasptr& operator=(const bhasptr&); //賦值操作符,
~bhasptr() // 析構函式,將其計數減減,
int *get_ptr() const // ptr->ip 這個代表的是智慧型指標裡有乙個普通指標
int get_int() const
void set_ptr(int *p)
void set_int(int i)
int get_ptr_val() const
void set_ptr_val(int val) const
private:
int val;
//int *ptr; // 指標複製就是淺複製,複製的是指標的位址,
u_ptr *ptr; // 這個是智慧型指標,u_ptr是乙個智慧型指標類,
};bhasptr& bhasptr::operator = (const bhasptr& rhs)
class chasptr
chasptr(const chasptr &orig)
:ptr(new int(*orig.ptr)), val(orig.val) {} // 這個是複製建構函式,
chasptr& operator = (const chasptr&); // 賦值操作符,
~chasptr() // 析構函式,
int *get_ptr() const
int get_int() const
void set_ptr(int *p)
void set_int(int i)
int get_ptr_val() const
void set_ptr_val(int val) const
private:
int val;
int *ptr; // 指標複製就是淺複製,複製的是指標的位址,
};chasptr& chasptr::operator = (const chasptr &rhs)
管理指標成員
void test bhasptr class ahasptr int get ptr const int get int const void set ptr int p void set int int i int get ptr val const void set ptr val int v...
C 管理指標成員
1 c 中一般採用下面三種方法之一管理指標成員 1 指標成員採取常規行為。這樣的類具有指標的所有缺陷 具有指標成員且使用預設複製建構函式和賦值操作符,無法避免懸垂指標 兩個物件的指標成員指向同一記憶體,刪除了其中乙個指標指向的記憶體時,另乙個指標將不再指向有效的記憶體空間 2 類可以實現所謂的 智慧...
管理指標成員(智慧型指標)
簡單記錄下我的學習過程 為主 題外話 過幾天就要出去找工作了。這幾天在家看看曾經做過的題。如今想想時間過得真的好快,希望自己能找乙份自己愜意的工作。以下是學習心得 這幅圖非常好的闡述了僅僅能指標的概念,事實上智慧型指標就是乙個計數類!以後多用用就熟悉了。設計介面 int get ptr const ...