#include<iostream>
#include<string>
using namespace std;
class Person
{
public:
Person(string name,int age)
{
this->name=name;
this->age=age;
}
string name;
int age;
};
//通过模板进行两个数据比较
template<class T>
bool myCompare(T &a,T &b)
{
if(a==b)
{
return true;
}
return false;
}
//利用具体化Person函数,告诉编译器走Person的对比代码
template<> bool myCompare(Person &a,Person &b)
{
if(a.name==b.name&&a.age==b.age)
{
return true;
}
return false;
}
void test01()
{
Person p1={"tom",18};
Person p2={"jerry",20};
//myCompare(p1,p2); error 自定义类型无法直接进行比较
bool ret=myCompare(p1,p2);
if(ret)
{
cout<<"相等"<<endl;
}else
{
cout<<"不相等"<<endl;
}
}
int main()
{
test01();
return 0;
}
模板的局限性和解决方法(具体化)
最新推荐文章于 2023-04-29 15:00:45 发布