回 帖 发 新 帖 刷新版面

主题:[讨论]关于模板的一个问题

报错:cannot convert 'this' pointer from 'const class Rational<int>' to 'class Rational<int> &'
源码:
template<typename T>
class Rational
{
public:
    Rational(const T& numberator = 0,const T& denominator = 1):
      m_numberator(numberator),m_denominator(denominator){}
      ~Rational(){}
      const T numerator(){return m_numberator;}
      const T denominator(){return m_denominator;}
      friend const Rational operator*(const Rational& lhs,const Rational& rhs)
      {
          return Rational(lhs.numerator()*rhs.numerator(),lhs.denominator()*rhs.denominator());
      }
private:
    T m_numberator;
    T m_denominator;
};

void main()
{
    Rational<int> oneHalf(1,2);
    Rational<int> result = oneHalf * 2;
}

回复列表 (共1个回复)

沙发

少写了Rational::Rational(const Rational& rhs)这个拷贝构造函数

我来回复

您尚未登录,请登录后再回复。点此登录或注册