gpt4 book ai didi

c++重载另一个类的赋值运算符

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:20:09 24 4
gpt4 key购买 nike

我有一个 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();

效果很好,但我想重载赋值运算符,这样我就可以直接使用:

double dbl = frac;  

我试着添加这个:

double double::operator =(double& dbl, fraction& frac) {return dbl = frac.n / frac.d;}  

导致以下编译错误:

 error: ‘double fraction::operator=(double&, fraction&)’ must take exactly one argument  

我做错了什么?

最佳答案

你需要的是转换运算符:

operator double() const { return n / d; }

关于c++重载另一个类的赋值运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22859550/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com