- 67
- 0
- 约 40页
- 2016-12-05 发布于浙江
- 举报
类模板的特化及部分特化(续) 格式:以关键字template开始,后面是尖括号中的模板 参数表。 注意:①部分特化的模板参数表只列出模板实参仍然未 知的那些参数。 ②类模板部分特化是被隐式实例化的。编译器选择“针 对该实例而言最为特化的模板定义”进行实例化,当没 有特化可被使用时,才使用通用模板定义。 例:Graphics24,90 figure; 它即能从通用类模板定义被实例化,也能从部分特化的 定义被实例化,但编译器选择的是部分特化来实例化模 板。 ③类模板部分特化必须有它自己对成员函数、静态数据成员和嵌套类的定义。 八、名字空间和类模板 类模板定义也可以被放在名字空间中。例如: Namespace cplusplus_primer{ Templateclass type Class Graphics{…}; Templateclass type Type create() {…} } 当类模板名字Graphics被用在名字空间之外时,它必须被 名字空间名cplusplus_primer限定修饰,或者通过一个using声明或指示符被引入。例如: 名字空间和类模板(续) Void main() { using cplusplus_primer::Graphics; Graphicsint *pg=new Graphicsint; //… } 注意:在名字空间中声明类模板也会影响该类模板及其成员的特化和部分特化声明的方式,类模板或类模板成员的特化声明必须被声明在定义通用模板的名字空间中(可以在名字空间之外定义模板特化)。 一个实例 书上讲到了一个关于队列的例子,下面将其代码 整理如下:(注意:书上P686类QueueItem中还要 增加如下友元声明:friend ostream operator(ostream os, const QueueType q);)。 #include iostream.h template class Type class QueueItem; template class Type class Queue { public: friend ostream operator(ostream os,const QueueType q); Queue() : front( 0 ), back ( 0 ) { } ~Queue(){} 一个实例(续) void add( const Type ); bool is_empty() const { return front == 0; } Type remove(); private: QueueItemType *front; QueueItemType *back; }; template class Type class QueueItem { public: QueueItem(Type val){item=val;next=0;} friend class QueueType; friend ostream operator(ostream os,const QueueType q); friend ostream operator(ostream os,const QueueItemType qi); 一个实例(续) private: Type item; QueueItem *next; }; template class Type void QueueType::add(const Type val) { QueueItemType *pt =new QueueItemType(val); if ( is_empty() ) front = back = pt; else { back-next = pt; back = pt; } } 一个实例(续) template class Type Type QueueType::remove() { if ( is_empty() ) { cerr remove() on empty queue \n; exit(-1); } QueueItemType *pt = front; front = front-next; Type retval = pt-item; delete pt; return retval; } 一个实例(续) template class Type ostream operator(ostream os, const QueueType q) //输出队列成员 { os ; QueueItemType *p; for ( p = q.front; p; p = p-next ) os
您可能关注的文档
- 9040高级培训幻灯片.ppt
- 80486微处理器幻灯片.ppt
- 124711_广告插图幻灯片.ppt
- 20133688tt宽带装维人员技能培训-宽带故障处理流程幻灯片.ppt
- 20140327金色LOFT个案分析不完全版幻灯片.ppt
- 20140606高考考务培训幻灯片.ppt
- A05 ReadyNAS 竞争分析幻灯片.ppt
- Access_15过程调用与参数传递幻灯片.ppt
- Access关系数据库简介幻灯片.ppt
- ACCESS实例教程(查询)幻灯片.ppt
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
最近下载
- 交流转辙机道岔动作电流故障曲线分析信号集中监测课件.pptx VIP
- 2025届东北三省三校高三下学期第一次联合模拟考试政治试题(原卷版+解析版).docx VIP
- 养老服务质量检测90项.pdf VIP
- 光谱分析图谱与标志.docx
- 2025新课标中考英语词汇.pdf VIP
- T_CNPHARS 0001-2025 群体药动学药效学分析标准操作规范.pdf VIP
- (2026年)血浆置换及血浆分离吸附护理要点PPT课件.pptx VIP
- 农村狗狗交配的全过程,让你看了有点不可置信.pdf VIP
- 医院培训课件:《死亡医学证明(推断)书》规范填写及死因链基础知识.pptx VIP
- 健康体检表样表最新文档.docx VIP
原创力文档

文档评论(0)