#include <iostream>
using namespace std;
#include<string>
class Person {
public:
string name;
int age;
};
template<typename T>
bool myCompare(T &a, T &b) {
if (a == b) {
return true;
} else {
return false;
}
}
//利用具体化Person的版本实现代码,具体化优先调用
template<> bool myCompare(Person &a, Person &b) {
if(a.name == b.name && a.age == b.age){
return true;
} else{
return false;
}
}
void test() {
Person p1 = {"Tom", 18};
Person p2 = {"Tom", 18};
bool compare = myCompare(p1, p2);//此时调用的是具体化的Person版本
if (compare){
cout << "true" << endl;
} else{
cout <<"false" <<endl;
}
}
int main() {
test();
}
C++利用模板对自定义类型进行比较
最新推荐文章于 2022-11-30 13:18:17 发布