我正在为分数创建模板类,分子和分母的类型可以是int,float或double。当重载算术或关系运算符时,当我尝试添加两个类(例如A类和B类)时,它会给出错误
在头文件“ fraction.h”中
#include<iostream>
using namespace std;
template <class T>
class fraction
{
friend ostream& operator<< <T>(ostream&, const fraction<T>&);
public:
fraction();
fraction<T>(T, T);
friend fraction<T> operator+(const fraction<T>&, const fraction<T>&);
private:
T numerator;
T denominator;
};
template <class T>
fraction<T>::fraction()
{
numerator = 0;
denominator = 1;
}
template <class T>
fraction<T>::fraction(T num, T denom)
{
numerator = num;
denominator = denom;
}
template <class T>
ostream& operator<<(ostream& osObject, const fraction<T>& frac)
{
osObject << frac.numerator << "/" << frac.denominator;
return …Run Code Online (Sandbox Code Playgroud)