好友
阅读权限10
听众
最后登录1970-1-1
|
本帖最后由 dong555 于 2023-1-23 22:28 编辑
比较2个变量的是否相等,自己另外创建一个person结构体比较
写了一个普通模板函数template<typename T> bool compare(T& a, T& b),一个普通person结构图比较函数bool compare(person& p1, person& p2),一个模板具体化template<> bool compare(person& p1, person& p2)
运行结果普通函数bool compare(person& p1, person& p2)和模板具体化template<> bool compare(person& p1, person& p2)一样,具体有什么区别呢。
[C++] 纯文本查看 复制代码 #include <iostream>
#include <string>
using namespace std;
struct person
{
string name;
int age;
};
template<typename T> bool compare(T& a, T& b)
{
if (a ==b )
{
//cout << "a==b\n";
return true;
}
else
{
//cout << "a!=b\n";
return false;
}
}
/*
bool compare(person& p1, person& p2)
{
if (p1.name ==p2.name && p1.age == p2.age)
{
//cout << "person1 == person 2" << endl;
return true;
}
else
{
//cout << "person1 != person 2" << endl;
return false;
}
}
*/
template<> bool compare(person& p1, person& p2) //函数模板具体化
{
if (p1.name == p2.name && p1.age == p2.age)
{
//cout << "person1 == person 2" << endl;
return true;
}
else
{
//cout << "person1 != person 2" << endl;
return false;
}
}
int main()
{
double x = 10.05;
double y = 9;
if (compare(x,y))
cout << "a==b\n";
else
cout << "a!=b\n";
person per1 = { "李四",25 };
person per2 = { "李四",24 };
if (compare(per1,per2))
{
cout << "person1 == person 2" << endl;
}
else
{
cout << "person1 != person 2" << endl;
}
return 0;
}
|
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|