我的專家,再次在網上練習時,我遇到了另一個問題。這是關於函數模板的。我能夠創建模板,但我不知道如何重載適當的操作符。請指教。超載運營商<
問題
函數模板largestOfTree返回最大的相同參數化類型的3個元素。函數模板可以應用於什麼類?寫一個類trainEngine與字段爲名稱,型號,質量。過載相應的運算符,這樣最大的三個函數模板可以應用到三個trainEngine對象。
到目前爲止?
template<class T>
bool largestOfThree(T t1, T t2, T t3){
if(t1<t2&&t2<t3){
return true;
}else{
return false;
}
}
trainEngine
class trainEngine {
private:
string name;
string model;
string mass;
public:
friend bool operator<(trainEngine const& lhs) {
if (lhs.name<lhs.model&&lhs.model<lhs.mass){
return true;
}
};
要哪些類的功能可以應用在很大程度上取決於功能的實現,你沒有顯示。 – juanchopanza
@juanchopanza我想我可以表明我們可以使用任何類的模板。 –
你在問「功能模板應用到什麼類」,我說「這主要取決於函數的實現」。如果該函數只是返回一個'T()',那麼它將適用於所有具有默認構造函數和複製構造函數的類。如果調用't1.foo()',那麼你會有額外的約束。 – juanchopanza