现代软件设计技术内容摘要:
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技术 —— 计算 Compiletime functions • 一般原则: – 局部变量用 enum类型 – 循环转化为递归,结束条件为一个特化版本 • 也可以是多重循环,需要用到部分特化特性 – 条件分支用模板特化解决 – 效果:以类型为基础,实现各种操作 • 例如 – sin x = x x^3/3! + x^5/5! x^7/7! + … – 在编译时刻求 pow(x,y), 即 x的 y次方 Template技术 —— 计算 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技术 • 定义一些“函数”,这些函数的参数和返回值都是类型 (type), 而不是数据 (data) • 例如:对于一个数组类,它的元素类型和平均数的类型不一定相同,可以用一个 trait class来建立这种映射关系 • 对应关系 – Average_type(T) T – Average_type(int) float • Trait的使用: Average的实现 Partial evaluation • 一个程序的计算分为两个部分 – 静态计算:在编译时刻执行 – 动态计算:在运行时刻执行 • 例如,计算立方体的体积 Template技术 —— 模板类作为基类 • 某种程度上可以代替模板特化 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技术 —— 以模板参数作为基类 • 允许用户把自己的类插入到类层次的中间 • 用户提供基类,类库使用基类 templatetypename Base, typename Policy1 class Deriving : public BasePolicy1 { …… } C++ as a twolevel language • 将 type当作 firstclass value来对待 • 例如 –一种做法: 下面的句子 • typedef T T_average。 –相当于 • typedef T_average = T。 –实现了类型的赋值 Template技术 —— typelist from 《 Modern C++ Design》 • 以类型作为元素构成链 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技术 —— typelist(续一 ) • 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技术 —— typelist(续二 ) • 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。现代软件设计技术
相关推荐
“质量工程”,使学生参与社会竞争的素质和能力得到普遍提升,对促进毕业生就业工作的可持续发展提供了保障。 二、我校毕业生就业现状及特点分析 就业现状 (一)、我校毕业生就业现状 项目 2020 2020 2020 1 在校生数(人) 23890 24452 24788 2 研、本科毕业生数(人) 6417 6735 6569 3 初次就业率(%) (小数点后 2位) % % % 就业现状
对其造成财产损失或者其他损失、损害的,应当依法赔偿或 者承担其他民事责任。 ” ○ 《 义务教育法 》 第 16条: “ ……… 禁止体罚学生。 …… 对违 反第 1款、第 2款规定的,根据不同情况,分别给予行政处 分、行政处罚;造成损失的,责令赔偿损失; ……” 体罚侵犯了学生的健康权、身体权和名誉权 健康权:是指自然人依法享有的以保持其身体机能安全 为内容的权利。 健康包括肉体组织和生理及心
鸟 — 鹊(鸟类) 金 — 钢(金属类) 木 — 柏(树木类) 心 — 忍(心理类) ( 2)形旁与字义直接相关。 如: 扌 — 打(与手有关) 火 — 烧(与火有关) 氵 — 渴(与水有关) 土 — 地(与土有关) ( 3)形旁与字义间接有关。 如: 艹 — 芳(花草的香味) 犭 — 狡(用狡猾的动物表达狡猾的品性) 羊 — 群(用羊儿聚群表达聚在一起的人或物) 口 — 唢呐(用口吹的乐器)
》 诗集 《 繁星 》《 春水 》 大致可以分为三类: 回忆录性质的自传散文 忆念亲友的记人散文 小品杂感 基本特征:”短小” “随便”“平淡”。 代表作: 《 绿的歌 》《 霞 》《 话说相思 》《 说梦 》《 养猫 》《 一个充满活力的汉字 》《 施者比受者更为有福 》《 我喜欢下雪的天 》《 我梦中的小翠鸟 》《 从一数到九十二 》《 我的家在哪里。 》 等等。