robot
最新文章(10)
Mqskit 和其它相關工具
CPython 的 GC 二、三事
寫 Mecurial Extension 是件快樂的事!
Mozilla 台灣辨公室徵人啟事
關於 Apple 的兩項專利
core dump 之前的 frame
怎麼發出 beep 聲?
先承認你要找的是奴才吧!
程式碼要清的多乾淨?
FreeBSD 的 Thread-Local Storage 實作
首頁
新編
最新留言
Entries RSS
重要關鍵字(10)
coding (122)
Python (93)
FreeBSD (71)
WEB (61)
URL (48)
hardware (46)
javascript (36)
Linux (34)
blog (30)
C++ (16)
所有關鍵字
新增 URL
動態欄位(屬性)之二
by thinker
2 Columns
關鍵字:
coding
C++
幾天前的 linkname:[動態欄位(屬性)] http://heaven.branda.to/~thinker/GinGin_CGI.py/show_id_doc/231 一文,匆匆的放出 $C++$ 動態欄位的實作。後經幾番試用之後,發覺介面不夠理想,動手作了些更動,並簡化。 在定義 carrier (提供動態欄位的 class) 方面,雖然 implement 有所變動,但介面依然一樣。 {{{#!cpp class data {}; typedef piggy_carrier<data> carrier_data; }}} class carrier_data 提供 carrier 能力,讓其它程式能夠動態加入屬性。 在動態加入新屬性之前,必需先定義屬性的名稱和型別 {{{#!cpp struct attr1: pg_name<int>; }}} 上面定義了一個型別為 int ,名稱為 attr1 的動態屬性。 新增動態屬性的方法 {{{#!cpp carrier_data carrier_obj; carrier_obj.pg_add<attr1>(1024); }}} 上面為 carrier_obj 新增一屬性,其名稱為 attr1 ,其值為 1024 。 讀取動態屬性的方法 {{{#!cpp cout << carrier_obj.pg_get<attr1>(); }}} 讀取 carrier_obj 的動態屬性 attr1 。 == 下載 == * attach:piggyback.tar.gz
最後更新時間: 2007-03-14 19:12:26 CST |
引用
查詢:
COMMENTS: