C++ 模板的局限性以及解决01
生活随笔
收集整理的這篇文章主要介紹了
C++ 模板的局限性以及解决01
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
#include <string>class Person
{
public:Person(string name, int age){this->m_Name = name;this->m_Age = age;}string m_Name;int m_Age;
};//通過模板進(jìn)行兩個數(shù)據(jù)比較
template<class T>
bool myCompare(T & a, T &b)
{if (a == b){return true;}return false;
}//對于自定義類型,模板有時候不能達(dá)到效果,不支持調(diào)用。
//利用具體化Person函數(shù),告訴編譯器 走Person對比代碼
template<> bool myCompare<Person>(Person & a, Person &b)
{cout << "調(diào)用的是具體化代碼" << endl;if (a.m_Name == b.m_Name && a.m_Age == b.m_Age){return true;}return false;
}void test01()
{Person p1("Tom", 19);Person p2("Jerry", 20);bool ret = myCompare(p1, p2);if (ret ){cout << "p1與p2相等" << endl;}else{cout << "不相等" << endl;}}int main(){test01();system("pause");return EXIT_SUCCESS;
}
具體化語法
template<> bool myCompare(Person & a, Person &b)
template<> + 函數(shù)聲明
總結(jié)
以上是生活随笔為你收集整理的C++ 模板的局限性以及解决01的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 生于80后剧情介绍
- 下一篇: C++ 类模板语法初步01