我有模板方法,我希望模板方法使用類中的特定方法來執行操作。可能嗎 ?使用類方法的模板
template<typename T>
int minus(T t1,T t2){
return t1-t2;
}
而且在我的蘋果對象類,我有一個叫做用getPrice() 我怎麼能結合兩種方法。
這是正確的嗎?
template<typename T>
int minus(T t1,T t2){
return t1.getPrice()-t2.getPrice();
}
我有模板方法,我希望模板方法使用類中的特定方法來執行操作。可能嗎 ?使用類方法的模板
template<typename T>
int minus(T t1,T t2){
return t1-t2;
}
而且在我的蘋果對象類,我有一個叫做用getPrice() 我怎麼能結合兩種方法。
這是正確的嗎?
template<typename T>
int minus(T t1,T t2){
return t1.getPrice()-t2.getPrice();
}
爲此,您可能希望你的類型的普通函數:
template <class T>
int minus(T t1, T t2) {
return t1 - t2;
}
int minus(const apple& t1, const apple& t2) {
return t1.getPrice() - t2.getPrice();
}
謝謝皮特,我想知道如何結合運算符重載例如operator- –
這取決於類型應該做什麼。我不希望名爲「apple」的類型提供'operator-';減去兩個蘋果沒有多大意義。但對於一些算法,能夠減去價格是明智的,對於這些算法,您正在探索的「減號」是一種好方法。 –
是的,這會工作,但它失去的模板的第一個版本的通用性。也就是說,它只適用於具有名爲'getPrice'的成員函數的類型。 –