1 Star 0 Fork 1

llongger/Code_C++

forked from GodOuO/Code_C++ 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
49.Template_limit.cpp 1.03 KB
一键复制 编辑 原始数据 按行查看 历史
GodOuO 提交于 2023-03-15 04:07 . Train
#include<iostream>
#include<string>
using namespace std;
//模版的局限性
class Person
{
private:
string m_Name;
int m_Age;
public:
string getName();
int getAge();
Person(string name,int age);
};
Person::Person(string name,int age)
{
m_Name = name;
m_Age = age;
}
string Person::getName(){
return m_Name;
}
int Person::getAge(){
return m_Age;
}
//对比两个数据是否相等
template<class T>
bool mCompare(T &a,T &b){
if (a == b){
return 1;
}
return 0;
}
template<> bool mCompare(Person &a,Person &b){ //Person 具体化操作,重载Compare
if (a.getAge() == b.getAge() && a.getName() == b.getName())
return 1;
return 0;
}
void test01(){
int a = 10;
int b = 20;
cout<<mCompare(a,b)<<endl;
}
void test02(){
/*
1.运算符重载(33~.cpp - 37~.cpp)
2.利用具体化Person 版本,具体化有限调用
*/
Person p1("Tom",2);
Person p2("Tom",2);
cout<<mCompare(p1,p2)<<endl;
}
int main(){
//test01();
test02();
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/llongger/codeCpp.git
[email protected]:llongger/codeCpp.git
llongger
codeCpp
Code_C++
master

搜索帮助