我有一个c ++类来处理分数,我希望它允许转换为double,
我有类似的东西:
class fraction
{
double n,d;
public:
fraction(double _n, double _d) {n = _n; d = _d;}
//some functions
double todouble() {return n/d;}
};
fraction frac(1,2);
double dbl = frac.todouble();
Run Code Online (Sandbox Code Playgroud)
哪个工作正常,但我想重载赋值运算符,所以我可以直接使用:
double dbl = frac;
Run Code Online (Sandbox Code Playgroud)
我试着添加这个:
double double::operator =(double& dbl, fraction& frac) {return dbl = frac.n / frac.d;}
Run Code Online (Sandbox Code Playgroud)
这导致以下编译错误:
error: ‘double fraction::operator=(double&, fraction&)’ must take exactly one argument
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?