template 模板也疯狂

型别参数

非型别参数

#include <iostream>
using namespace std;
template<class memtype>  //这里用class 和 typename 都行。细微的差别太复杂了啊。csdn 里有牛人。
class lingyun
{
public:
	lingyun(memtype ele):_value(ele){}; //这样也可以的。
	memtype getvalue();
	bool setvalue(memtype value);
	void print();  //声明了,没定义。只要不调用就可以编译运行。
private:
	memtype _value;
};

/*
template<typename memtype>
lingyun<memtype>::lingyun(memtype ele)
{
	_value = ele;
}
*/
template<typename memtype2>  //这里确实可以用其他的参数名称,例如memtype2
inline memtype2 lingyun<memtype2>::getvalue()
{
	return _value;
}

template<typename memtype3>
inline bool lingyun<memtype3>::setvalue(memtype3 value) //vc 6在这里有小问题。
{
	_value = value;
}

template<int parm1,long parm2,typename T >
class tree
{
public:
	tree(int con):_value1(con),_value2(parm2){};
	int get();
	void set(int test){_value1 = test};
private:
	int _value1;
	int _value2;

};
template<int parm1,long parm2,typename T> //这种混合的东西也行。template 真的是功能强大啊。
int tree<parm1,parm2,T>::get()
{
	return _value2;
}
int main(int argc, char* argv[])
{
	lingyun<string> person("wgm");
	tree<8,9,int> apple(18);
	cout<<apple.get();
	//printf("Hello World!\");
	return 0;
}


 

template 知识就学到这里吧。皮毛的皮毛。继承机制,嵌套类型等。高深的东西用的时候慢慢研究。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值