C++:编译程序时出错C++

C++: Errors while compilation of C++ program

本文关键字:C++ 出错 编译程序      更新时间:2023-10-16

我正在制作一个具有全局函数用法的类分数我的代码如下所示:

#include<iostream>
using namespace std;
ostream & operator<<(ostream & os, Fraction & fr)
{
    return os << fr.get_num() << '/' << fr.get_den();
}
class Fraction
{
private:
    int num, den;
public:
int get_num()
    {
        return num;
    }
    int get_den()
    {
        return den;
    }
};

主函数有调用 : 'cout <<f2 <<endl;
但是我在编译时遇到了以下构建错误:
错误 C2805 二进制"运算符<<"参数太少
fr:未声明的标识符
get_num左侧必须是结构/联合/类

你应该像这样更改代码的顺序:

class Fraction
{
private:
    int num, den;
public:
int get_num()
    {
        return num;
    }
    int get_den()
    {
        return den;
    }
};
ostream & operator<<(ostream & os, Fraction & fr)
{
    return os << fr.get_num() << '/' << fr.get_den();
}