管理指標成員

2021-07-10 15:18:03 字數 1811 閱讀 2912

#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 ...