#include <string>
#include <iostream>
using namespace std;
template <class T>
class Tyler{
T first, second;
public:
Tyler(T a, T b)
{
first = a;
second = b;
}
int larger();
string larger();
};
template <class T>
int Tyler<int>::larger()
{
cout << "int larger" <<endl;
return(first>second?first:second);
}
template <class T>
string Tyler<string>::larger()
{
cout << "string larger" <<endl;
if(first.compare(second) > 0)
return(first);
return(second);
}
int main()
{
Tyler<int> tobj(7,77);
Tyler<string> tstr("Seven", "test");
cout << tobj.larger() <<endl;
cout << tstr.larger() <<endl;
}
我正在學習C++(特別是模板)並試圖理解。如果我想在下面創建兩個函數,並且「較大」函數將執行不同,取決於在main中實例化的類中指定的數據類型。我只看到使用int和float的例子。C++模板int和字符串
你想創建取決於給它的類型執行操作的功能? – MtRoad 2014-10-28 00:28:32
模板類中不需要兩個'greater()'函數,只有一個:'T greater()'。注意,返回類型是'T',這是完全正確的。在實現中:從專業化中拋棄'class T'。 – Notinlist 2014-10-28 00:31:21
@MrRoad是的我想創建兩個更大的函數,每個函數都會根據給定的數據類型做不同的事情。 – 2014-10-28 00:39:46