freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

現(xiàn)代軟件設(shè)計(jì)技術(shù)(編輯修改稿)

2024-11-17 08:35 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 bit3 = (N amp。 0x08) ? 1 : 0, bit2 = (N amp。 0x04) ? 1 : 0, bit1 = (N amp。 0x02) ? 1 : 0, bit0 = (N amp。 0x01) ? 1 : 0 }。 public: enum { nbits = bit0+bit1+bit2+bit3 }。 }。 int i = countBits13::nbits。 int countBits(int N) { int bit3 = (N amp。 0x08) ? 1 : 0, bit2 = (N amp。 0x04) ? 1 : 0, bit1 = (N amp。 0x02) ? 1 : 0, bit0 = (N amp。 0x01) ? 1 : 0。 return bit0+bit1+bit2+bit3。 } int i = countBits(13)。 Template技術(shù) —— 計(jì)算 Compiletime functions ? 一般原則: – 局部變量用 enum類型 – 循環(huán)轉(zhuǎn)化為遞歸,結(jié)束條件為一個(gè)特化版本 ? 也可以是多重循環(huán),需要用到部分特化特性 – 條件分支用模板特化解決 – 效果:以類型為基礎(chǔ),實(shí)現(xiàn)各種操作 ? 例如 – sin x = x x^3/3! + x^5/5! x^7/7! + … – 在編譯時(shí)刻求 pow(x,y), 即 x的 y次方 Template技術(shù) —— 計(jì)算 pow(x,y) templateint X, int Y struct ctime_pow { enum { result = X*ctime_powX, Y1::result }。 }。 templateint X struct ctime_powX, 0 { enum { result = 1}。 }。 用法: const int z = ctime_pow5,3::result。 Trait技術(shù) ? 定義一些“函數(shù)”,這些函數(shù)的參數(shù)和返回值都是類型 (type), 而不是數(shù)據(jù) (data) ? 例如:對(duì)于一個(gè)數(shù)組類,它的元素類型和平均數(shù)的類型不一定相同,可以用一個(gè) trait class來建立這種映射關(guān)系 ? 對(duì)應(yīng)關(guān)系 – Average_type(T) T – Average_type(int) float ? Trait的使用: Average的實(shí)現(xiàn) Partial evaluation ? 一個(gè)程序的計(jì)算分為兩個(gè)部分 – 靜態(tài)計(jì)算:在編譯時(shí)刻執(zhí)行 – 動(dòng)態(tài)計(jì)算:在運(yùn)行時(shí)刻執(zhí)行 ? 例如,計(jì)算立方體的體積 Template技術(shù) —— 模板類作為基類 ? 某種程度上可以代替模板特化 templatesize_t MAX_LEN class String : public Arraychar, MAX_LEN+1 { public : // additional functionality bool operator==(const StringMAX_LENamp。 rhs) { return strcmp(m_rg, ) ==0。 } } Template技術(shù) —— 以模板參數(shù)作為基類 ? 允許用戶把自己的類插入到類層次的中間 ? 用戶提供基類,類庫使用基類 templatetypename Base, typename Policy1 class Deriving : public BasePolicy1 { …… } C++ as a twolevel language ? 將 type當(dāng)作 firstclass value來對(duì)待 ? 例如 –一種做法: 下面的句子 ? typedef T T_average。 –相當(dāng)于 ? typedef T_average = T。 –實(shí)現(xiàn)了類型的賦值 Template技術(shù) —— typelist from 《 Modern C++ Design》 ? 以類型作為元素構(gòu)成鏈 template class T, class U struct Typelist { typedef T Head。 typedef U Tail。 }。 ? 例如 Length操作 template class TList struct Length。 template struct LengthNullType { enum { value = 0 }。 }。 template class T, class U struct Length TypelistT, U { enum { value = 1 + LengthU::value }。 }。 ? typelist各種操作 – Length – TypeAt – IndexOf – Append – Erase – Replace – MostDerived – …... Template技術(shù) —— typelist(續(xù)一 ) ? typelist用法 define TYPELIST_1(T1) TypelistT1, NullType define TYPELIST_2(T1, T2) TypelistT1, TYPELIST_1(T2) define TYPELIST_3(T1, T2, T3) TypelistT1, TYPELIST_2(T2, T3) template class T1, class T2, template class class Unit class GenScatterHierarchyTypelistT1, T2, Unit : public GenScatterHierarchyT1, Unit , public GenScatterHierarchyT2, Unit { }。 template class AtomicType, template class class Unit class GenScatterHierarchy : public UnitAtomicType { }。 template template class class Unit class GenScatterHierarchyNullType, Unit { }。 Template技術(shù) —— typelist(續(xù)二 ) ? GenScatterHierarchy用法 template class T class Holder { T m_value。 }。 typedef GenScatterHierarchy TYPELIST_3(int, string, CustomClass), Holder MyTypeTree MyTypeTree GenScatterHierarchy int,Holder GenScatterHierarchy TYPELIST_2(string, C
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1