《C 沉思錄》 第六章 控制代碼 第一部分

2021-06-19 14:43:01 字數 1144 閱讀 9704

第五章介紹的**將會複製所**的物件,就像複製**一樣。控制代碼允許保持**的多型行為的同時,還可以避免進行不必要的複製。

控制代碼類(handle class)也稱為 智慧型指標(smart pointer)。

乙個簡單的類:

class point

point(int x,int y):m_x(x),m_y(y){}

int x()const

int y()const

point& x(int x)

point& y(int y)

private:

int m_x;

int m_y;

};

控制代碼:

class upoint

upoint(const point&pv):p(pv),u(1) {}

upoint(int x,int y):p(x,y),u(1) {}

upoint(const upoint &up):p(up.p),u(1) {}

};

class handle

handle(int x,int y): up(new upoint(x,y)) {}

handle(const point&p): up(new upoint(p)) {}

handle(const handle &h)

: up(h.up)

handle& operator=(const handle &h)

up = h.up;

return *this;

}~handle()

}int x() const

int y() const

/*(1)指標語義,互相影響*/

handle& x(int x0)

handle& y(int y0)

/*(2)值語義,互不影響,寫時複製

handle& x(int xv)

handle& y(int yv)

*/private:

upoint *up;

/*(2)值語義,互不影響*/

void allocup()

}};

C 第一部分總結

c 一 一丶復合型別 1指標與引用 一 指標 1 指標的特點 指標持有乙個物件的位址,稱為指標 指向 該物件 通過指標可以間接操縱它指向的物件 2 指標的定義 型如int a char a,b 3 取位址符 使用取位址符 型如int pi ival 4 特殊 void型別 可以持有任何型別的位址值,...

第一部分 C 語言

第一部分 c 語言 330頁 10 33天 第一章 c 與.net框架 一 net框架 cts common type system 公共型別庫 cls common language system 公共語言規範 fcl framework class library 框架型別庫 clr提供程式執行...

第一部分 C 關鍵字

表1 c 關鍵 關鍵字 說明 關鍵字 說明 關鍵字 說明 關鍵字 說明 1 abstract 抽象類event 事件new 構造例項 隱藏方法 struct 結構體2 as轉化為 explicit null 空switch 分支語句 3 base extern object 基類 萬類之祖 this...