C++ template 模版 函数 模版类

平时用C C#  Java类的语言用的多些   , 现在弄弄C++的

一些高级语言都有泛型  比如C#  List<类型>  这样的用法非常方便好用

类似的C++里面有模版  不过语法看起来就没那么美丽了

主要是实现:

1.方法的模版

    不同类型,功能相同的使用

2.类的模版    

    不同类型,类功能类似的使用

注意点:

   a    template <typename T , typename T1> 先定义下模版有那几个参数

   b    对于类,如何为定义在外面的函数书写模版

   c    就是使用了,与其它高级语言类似

#include <iostream>

//定义模版   其实就是类型不清楚 用的时候指明下, 编译器编译的时候会根据指明的类型  生成不同的实际函数调用
template <typename T , typename T1>
T add( T a, T1 b)
{
	return  a + b;
}
//--------------------------------------------------------


template <typename T>
class MyClass
{
	T i;
public:
	MyClass():i(1.1){};
	T GetI() { return i; };
private:

};

//......................................................
//函数写到外面  
template <typename T>
class MyClass2
{
	T m;
public:
	MyClass2(T value);
	T Getm();
private:
};

template <typename T>
MyClass2<T>::MyClass2(T value)
{
	m = value;
}

template <typename T>
T MyClass2<T>::Getm()
{
	return m;
}


int main()
{
	MyClass<float> *pcls = new MyClass<float>();
	MyClass2<double> *pcls2 = new MyClass2<double>(3.5);
	std::cout<<pcls->GetI()<<"\n";
	std::cout << pcls2->Getm() << "\n";
				 //指明类型
	std::cout << add<float,float>(1.0,2.1)<< "Hello World!\n";
}

运行结果:

1.1
3.5
3.1Hello World!

老铁们可以把试用过程中的类型修改成int 之类的 ,看输出结果对比就知道怎么用了
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值