码迷,mamicode.com
首页 > 其他好文 > 详细

浅显易懂的单模版类——————(与函数模版的区别)

时间:2017-04-13 21:07:50      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:system   class   不能   std   转化   main   his   type   --   

  • 模版类是抽象的,必须进行具体类型,而函数模版则不一定

技术分享

#include<iostream>
#include<string>
using namespace std;

template < typename T>//定义模版不能加分号
class A
{
public:
	A(T a)
	{
		this->a = a;
	}
	T &get()
	{
		return a;
	}
private:
	T a;
};
int main()
{
	A<int> a1(10); // 这里必须写上<>里面的内容!
	cout << a1.get() << endl;

	A<char> a2(‘l‘);
	cout << a2.get() << endl;

	A<string > a3("love");
	string temp=a3.get() ;
	cout << temp << endl;
	system("pause");
}

  

  • 函数模版不允许自动类型转换,必须严格按照类型匹配----这里的意思是如果模版类要求两个参数的类型一致,则调用函数必须符合这个要求。
  • 普通函数则可以进行自动类型的转化。
#include<iostream>
using namespace std;

template <typename T>
void Staff(T a, T b)
{
	cout << "a= " << a << " b = " << b << endl;
	cout << "我只是一个普通的函数模版、\n";
}

void  Staff(int a, char b)
{
	cout << "a= " << a << " b = " << b << endl;
	cout << "我只是一个普通的函数\n";
}
int main()
{
	int x = 101;
	char y = ‘a‘;
	int z = 100;

	Staff(x, y);//调用的普通函数
	Staff(y, x); 调用的普通函数,普通函数可以自动类型转化
	Staff(x, x);  调用的函数模版  函数模版不可以自动类型的转化
	system("pause");
}

  技术分享

 

浅显易懂的单模版类——————(与函数模版的区别)

标签:system   class   不能   std   转化   main   his   type   --   

原文地址:http://www.cnblogs.com/xiaochige/p/6705857.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!