您的位置:首页 > 其它

2008 December 26th Friday

2009-01-02 17:30 387 查看
template <typename T>
template <typename V>

syntax instead of the

template<typename T, typename V>

syntax.

Templates As Parameters

// tempparm.cpp -- template template parameters
#include <iostream>
using namespace std;
#include "stacktp.h"

template <template <typename T> class Thing>
class Crab
{
private:
Thing<int> s1;
Thing<double> s2;
public:
Crab() {};
// assumes the thing class has push() and pop() members
bool push(int a, double x) { return s1.push(a) && s2.push(x); }
bool pop(int & a, double & x){ return s1.pop(a) && s2.pop(x); }
};

int main()
{
Crab<Stack> nebula;
// Stack must match template <typename T> class thing
int ni;
double nb;

while (cin>> ni >> nb && ni > 0 && nb > 0)
{
if (!nebula.push(ni, nb))
break;
}

while (nebula.pop(ni, nb))
cout << ni << ", " << nb << endl;
cout << "Done./n";

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: