博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
类模板使用示例(二)类模板整体特化
阅读量:5096 次
发布时间:2019-06-13

本文共 1528 字,大约阅读时间需要 5 分钟。

特化的目的: 表明该模板在特殊类型下具有不同的行为

注意:特化的实现可以和基本类模板的实现完全不同

 

Stack2.h代码:

#ifndef STACK2_H#define STACK2_H#include 
#include
#include
#include "TestCC.h"template<>class Stack
{ public: void push(std::string const&); void pop(); std::string top() const; bool empty() const { return elems.empty(); } private: std::deque
elems;};void Stack
::push(std::string const& elem){ std::cout << "Hello World" << std::endl; elems.push_back(elem);}void Stack
::pop(){ if (elems.empty()) throw std::out_of_range("Stack
::pop(): empty stack"); elems.pop_back();}std::string Stack
::top() const{ if (elems.empty()) throw std::out_of_range("Stack
::top(): empty stack"); return elems.back();}#endif // STACK2_H

 

测试代码main.cpp:

#include 
#include
#include
#include "Stack2.h"using namespace std;int main(){ try { Stack
intStack; intStack.push(7); cout << intStack.top() << endl; Stack
stringStack; stringStack.push("hello"); cout << stringStack.top() << endl; stringStack.pop(); stringStack.pop(); } catch (std::exception const& ex) { cerr << "Exception: " << ex.what() << endl; return EXIT_FAILURE;// n stdlib.h }}

 

结果:

转载于:https://www.cnblogs.com/AmitX-moten/p/4446007.html

你可能感兴趣的文章
关于“设计模式”和“设计程序语言”的一些闲话
查看>>
(一二九)获取文件的MineType、利用SSZipArchive进行压缩解压
查看>>
python学习4 常用内置模块
查看>>
Window7上搭建symfony开发环境(PEAR)
查看>>
ResolveUrl的用法
查看>>
Linux内核态、用户态简介与IntelCPU特权级别--Ring0-3
查看>>
第23月第24天 git命令 .git-credentials git rm --cached git stash clear
查看>>
华为离职副总裁徐家骏:年薪千万的工作感悟
查看>>
java SE :标准输入/输出
查看>>
sublimie 知乎
查看>>
一些方便系统诊断的bash函数
查看>>
Floyd算法 - 最短路径
查看>>
【转载】基于vw等viewport视区相对单位的响应式排版和布局
查看>>
<转>关于MFC的多线程类 CSemaphore,CMutex,CCriticalSection,CEvent
查看>>
《你们都是魔鬼吗》实验十二 团队作业八:Alpha冲刺
查看>>
jquery中ajax返回值无法传递到上层函数
查看>>
[Leetcode]942. DI String Match
查看>>
css3之transform-origin
查看>>
1003 Emergency
查看>>
bm25
查看>>