控制代碼類中計數器的分離

2021-07-11 02:51:28 字數 1265 閱讀 4782

控制代碼類是管理基類指標的類,「智慧型指標」的類其實就是控制代碼類。智慧型指標都有乙個對應的計數器,這個計數器可以在智慧型指標指向的物件中,在「c++中的智慧型指標」中就是這樣的;也可以在控制代碼類中。這兩種有一些區別。

當計數器在智慧型指標物件的內部時,我們需要在類的外層加一層包裝,之前用ptr類,但是為了用計數器,在類ptr外層包裝了u_ptr類。如下圖:

其實還可以計數器和指標物件的分離,把計數器放到控制代碼類中,在「c++中的智慧型指標」以看到,不用在每乙個控制代碼類中放乙個計數器,控制代碼類要共有乙個計數器;可以在控制代碼類使用乙個計數器指標,這個指標物件公共的物件。這樣做是模組化程式更高了,但是模組並沒有更複雜。另外還可以把計數器寫成類,計數器也「智慧型」。

//重新實現複製否造函式  

hasptr(const

hasptr &orig):    

ptr(orig.ptr),val(orig.val)    

hasptr&operator=(const

hasptr& rhs);    

//獲取成員變數的介面  

int*get_ptr()

const

intget_int 

const

//設定成員變數的介面  

void

set_per(

int*p)    

void

set_int(

inti)    

intget_ptr_val()

const

intset_ptr_val(

intval)

const

//指標的值沒變,所以可以為const       

private

:    

ptr *ptr;    

size_t

*ust;    

}    

計數器的分離,不用重寫u_prt類,而ptr指標還可以指向其基類物件。

但是當把hasptr作為類ptr的友元時,還是要改類ptr的**的(新增友元);如果智慧型指標指向其基類,也要在基類中新增友元,因為友元不能繼承。

Python Counter類(計數器)

counter 計數器 用於追蹤值的出現次數 counter類繼承dict類,所以它能使用dict類裡面的方法 建立乙個counter類 import collections obj collections.counter aabbccc print obj 輸出 counter elements ...

struts2 ognl中計數器的使用

struts2隨提供了迴圈控制標籤,使用起來也比較方便,但在具體的應用中,也有不方便之處,他沒有像struts1的標籤,提供了begin end等屬性,支援自增變數的迴圈。遇到這種問題怎麼解決?struts2提供了標籤,且提供了乙個bean類 org.apache.struts2.util.coun...

FPGA設計中計數器的使用技巧

計數器使用很常見也很實用。以下是幾個例子 1,簡單的cnt計數 verilog reg 31 0 cnt always posedge clk cnt cnt 1 這是乙個簡單的計數器,計數從0開始計數,計數範圍0 2 32 1.2,帶有方向的cnt計數 verilog reg 31 0 cnt 1...