沉思錄控制代碼類之二

2021-06-06 21:36:46 字數 1117 閱讀 4285

#includeusing namespace std;

class point

point(int x,int y):xval(x),yval(y){}

int x()const

int y()const

point& x(int xv)

point& y(int yv)

private:

int xval,yval;

};class usecount;

bool usecount::only()

/*判斷當前物件繫結的point物件是否還有其他物件

繫結到該point物件,有多個物件繫結到同乙個point物件

返回true

*/bool usecount::makeonly()

usecount::usecount():p(new int(1)){}

usecount::usecount(const usecount& u):p(u.p)

bool usecount::reattach(const usecount& u)

p=u.p;

return false;

}usecount::~usecount()

class handle;

//成員u的構造會自定呼叫usecount的預設建構函式

//多個handle物件可以繫結到乙個point

handle::handle():p(new point){}

handle::handle(int x,int y):p(new point(x,y)){}

handle::handle(const point &p0):p(new point(p0)){}

handle::handle(const handle& h):p(h.p),u(h.u){}

handle::~handle()

handle& handle::operator=(const handle&h)

int handle::x()const

handle& handle::x(int x0)

handle& handle::y(int y0)

int main()

C 沉思錄 控制代碼類1

看了下 c 沉思錄 第六章的內容介紹的是控制代碼第一部分,採用引用計數器的方式減少記憶體的拷貝 動手敲了下 加深點印象,加了點注釋 class point point int x,int y xval x yval y int x const int y const point x int xv p...

C 沉思錄 控制代碼類2

c 沉思錄 的第六章介紹了控制代碼類,第七章也介紹控制代碼類,不過這章介紹的是引用技術和物件資料分開的技術,有3個類handle,point和usecount組成 順便新增了點自己認為重要的注釋 使用三個資料結構取代第六章的兩個資料結構會增加了模組化的程度而沒有增加額外的複雜性 並不是很理解這句話的...

C 沉思錄 控制代碼2

1 c 沉思錄 控制代碼1 存在問題 控制代碼為了繫結到point的物件上,必須定義乙個輔助類upoint,如果要求控制代碼繫結到point的子類上,那就存在問題了。2 有沒有更簡單的辦法呢?控制代碼使用point 直接繫結到point物件上 包括子類 為了保持多個控制代碼引用計數的一致性,使用in...