Ren*_*ene 3 c++ primitive operator-overloading variable-assignment
我想知道是否有可能使我的
class Time
{
public:
Time();
explicit
Time(
const double& d);
Time&
operator=(
const Time& time);
Time&
operator=(
const double& d);
};
Run Code Online (Sandbox Code Playgroud)
可以分配给原始双精度吗?
我经常使用 Time 作为 IV,并且需要对其进行大量标量操作,因此它需要与 DV 进行“混合”,DV 通常是普通的双精度数。添加第二个赋值运算符则起到了相反的效果。
尽管如此,许多操作仍然无法完成。我一直在 Time 类之外编写运算符,以允许在 Time 和 double 之间进行加法、减法、乘法和除法。但由于不允许在类之外使用赋值运算符,因此我无法克服最后一个错误:
Error 1 error C2440: 'initializing' : cannot convert from 'double' to 'Time' linearfit.cpp 67
Run Code Online (Sandbox Code Playgroud)
有人有这方面的经验吗?
谢谢!
您必须编写/覆盖一个运算符。在本例中为强制转换运算符。定义一个方法
operator double() { return double_however_computed_from_your_time; };
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
994 次 |
| 最近记录: |