我收到错误:"in function main: undefined reference to Fraction::Fraction()"

Ive been getting a error: "in function main: undefined reference to Fraction::Fraction()"

本文关键字:Fraction reference to undefined function 错误 in main      更新时间:2023-10-16
#include <iostream>
using namespace std;
class Fraction
{
private:
  //variables to store numerator and denominator
  int num;
  int denom;
public:
  Fraction();
  Fraction(int num): num(num) {}
  Fraction(int num, int denom): num(num), denom(denom) {}
  int get_numerator() const {return num;}
  int get_denominator() const {return denom;}
};
istream &operator>> (istream &input, Fraction &f)
{
  int n, d;
  char slash;
  input >> n;
  input >> slash;
  input >> d;
  f = Fraction(n, d);
  return input;
}
ostream &operator<<(ostream &output, const Fraction &frac)
{
  return output << frac.get_numerator() << "/" << frac.get_denominator();
}
int main()
{
  Fraction frac(1,2);
  Fraction frac2;
  cout << frac << endl;
  cin >> frac2;
  cout << frac2 << endl;
  return 0;
}

我正在尝试创建一个分数数据类型。该代码应该允许用户使用重载的">>"运算符输入分数,但它不起作用,因为我收到错误:在函数 'main' 中:对 Fraction::Fraction() 的未定义引用

我尝试了没有重载输入运算符的代码,它工作正常。

我做错了什么?

编译器

要求定义以下函数(默认构造函数):-

 Fraction();

您尚未提供的内容。

相关文章: