管理指標成員

2021-07-09 02:30:41 字數 1899 閱讀 7978

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 val)const

private:

int val;

int *ptr;

};

/**********demo.cpp***********/
#include "iostream"

#include "plain-ptr.h"

using namespace std;

void test_ahasptr()

int main()

出現的一大串數字就是懸垂指標。

複製建構函式不再複製乙個指標。而是分配乙個新的int物件並初始化該物件以儲存與被複製物件相同的值。每個物件都儲存屬於自己的int值的不同副本,所以析構函式將不條件刪除指標。

/*****深複製*****value-ptr.h**********/

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_chasptr()

~u_ptr()

};

class bhasptr

bhasptr(const bhasptr &orig) :ptr(orig.ptr), val(orig.val)

bhasptr& operator = (const bhasptr&);

~bhasptr()

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;

u_ptr *ptr;

};bhasptr& bhasptr::operator=(const bhasptr &rhs)

/****智慧型指標*********/

void test_bhasptr()

管理指標成員

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

C 管理指標成員

1 c 中一般採用下面三種方法之一管理指標成員 1 指標成員採取常規行為。這樣的類具有指標的所有缺陷 具有指標成員且使用預設複製建構函式和賦值操作符,無法避免懸垂指標 兩個物件的指標成員指向同一記憶體,刪除了其中乙個指標指向的記憶體時,另乙個指標將不再指向有效的記憶體空間 2 類可以實現所謂的 智慧...

管理指標成員(智慧型指標)

簡單記錄下我的學習過程 為主 題外話 過幾天就要出去找工作了。這幾天在家看看曾經做過的題。如今想想時間過得真的好快,希望自己能找乙份自己愜意的工作。以下是學習心得 這幅圖非常好的闡述了僅僅能指標的概念,事實上智慧型指標就是乙個計數類!以後多用用就熟悉了。設計介面 int get ptr const ...