我的专家,再次在网上练习时,我遇到了另一个问题。这是关于函数模板的。我能够创建模板,但我不知道如何重载适当的操作符。请指教。超载运营商<
问题
函数模板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