【发布时间】:2016-03-06 05:28:33
【问题描述】:
我正在制作一个具有全局函数用法的类 Fraction 我的代码如下所示:
#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
但是我在编译时遇到了构建错误:
错误 C2805 二进制“运算符
fr:未声明的标识符
get_num 的左边必须是 struct/union/class
【问题讨论】:
-
这是您得到的唯一错误吗?当您定义
operator<<函数时,Fraction没有被声明?您知道在 C++ 中必须在使用符号之前声明它们吗? -
您还应该通过 const 引用获取
Fraction -
@DROY:谢谢 .. 将在发布前检查堆栈溢出其他线程:)