成员模板,模板类做类成员

来源:互联网 发布:ipo 净利润 数据 编辑:程序博客网 时间:2024/06/06 19:43

C++的模板可用作结构体、类或模板类成员,在此记录一个例子:

#include <iostream>using std::cout;using std::endl;template<typename T>class beta{private:template<typename V>  //将模板类定义放在类的私有变量区域,模板类做为私有变量class hold{private:V val;public:hold(V v){val=v;}void show()const{cout<<val<<endl;}V Value()const{return val;}};hold<T> q;  //相当于在beta类中包含了hold类的两个实例,所以下面通过这两个对象使用它们的方法hold<int> n;public:beta(T t,int i):q(t),n(i){}template<typename U>  //模板函数做方法U blab(U u,T t){return (n.value()+q.value())*u/t;}void show()const{q.show();n.show();}};int main(){beta<double> guy(3.5,3);guy.show();cout<<guy.blab(10,2.3)<<endl;cout<<"Done\n";return 0;}



原创粉丝点击